打印
[研电赛技术支持]

GD32H7XX软件触发中断

[复制链接]
1281|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-11-7 10:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个在demo里没找到,有相关编程要求的可以直接套用。
先简单阐述一下,实际上就是用几个位来控制一根软件触发通道的中断情况。以GD32H7系列为例,中断使能寄存器EXTI_INTEN就是是否允许这条线启用中断,和平时的enableDMA一个意思。而允许中断以后,该如何触发,是上升沿、下降沿、还是对应的软件中断触发,就看具体的需求。我这里演示软件中断。
EXTI 触发源一共有38个通道,0-15是GPIO触发,也就是对应的GPIO可以控制高低电平模拟上升沿,下降沿。我这里直接采用软件中断事件寄存器 (EXTI_SWIEV)。软件中断事件寄存器 0(EXTI_SWIEV0),控制0-31的通道,1控制32-37通道。我这里以通道0为例。


代码编写:
1.首先使能中断EXTI0
nvic_irq_enable(EXTI0_IRQn, 1U, 0U);
2.允许通道0启用中断
EXTI_INTEN0 = 0x00000001;
3. 激活软件触发通道0,也就是触发中断
EXTI_SWIEV0 = 0x00000001;
4.退出中断
exti_interrupt_flag_clear(EXTI_0);
而要执行的中断内容,直接写入中断函数即可
void EXTI0_IRQHandler(void)
{
要执行的中断内容
exti_interrupt_flag_clear(EXTI_0); //完成后退出该中断
}
我刚接触GD芯片,觉得这种开启中断的方式简直是万精油。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/m0_38038158/article/details/143509080

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2028

主题

15902

帖子

13

粉丝