ZBLOG

void nvic_init(void) { NVIC_InitTypeDef nvic_struct1; NVIC_InitTypeDef nvic_struct2; NVIC_InitTypeDef nvic_struct3; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); nvic_struct1.NVIC_IRQChannel = EXTI0_IRQn; nvic_struct1.NVIC_IRQChannelPre...

这段代码是用来初始化NVIC(Nested Vectored Interrupt Controller)的配置。它使用了STM32固件库中的相关函数进行配置。

首先,通过调用NVIC_PriorityGroupConfig()函数设置优先级分组为1(4位抢占优先级和0位响应优先级)。接下来,定义了三个NVIC_InitTypeDef结构体变量:nvic_struct1nvic_struct2nvic_struct3

对于nvic_struct1,设置了IRQ通道为EXTI0_IRQn(外部中断0),抢占优先级和响应优先级均为0,并使能该中断通道。然后通过调用NVIC_Init()函数进行初始化。

接着,再次调用NVIC_PriorityGroupConfig()函数进行优先级分组设置。

对于 nvic_struct2nvic_struct3 也是类似的操作,都是设置相应的IRQ通道(EXTI15_10_IRQn)以及抢占优先级和响应优先级,并使能相应中断通道。

这段代码主要是针对外部中断的 NVIC 配置,可以根据具体需求修改相应的参数和中断通道。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=9150

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?