完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
EXti15_10_IRQHandler中EXTI10 、EXTI11、EXTI12、EXTI13、EXTI14、EXTI15的这几个中断事件的中断函数都通过EXTI15_10_IRQHandler进入的,我现在请教我怎么设置EXTI10 、EXTI11、EXTI12、EXTI13、EXTI14、EXTI15的中断优先级呢?通过如下程序感觉设置的EXTI10 、EXTI11、EXTI12、EXTI13、EXTI14、EXTI15中断级别是一样的,但是我想区别设置高低优先级的,这个怎么操作啊?请高手指导,谢谢。
/* Enable EXTI Interrupt to the highest priority */ NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init( NVIC_InitStructure); |
|
相关推荐
2个回答
|
|
11-15用的是同一个中断线
|
|
|
|
在STM32中,要设置EXTI10、EXTI11、EXTI12、EXTI13、EXTI14、EXTI15的中断优先级,您需要按照以下步骤操作:
1. 首先,您需要为每个EXTI线配置中断优先级。在STM32中,这通常是通过修改NVIC(嵌套向量中断控制器)的优先级寄存器来完成的。对于EXTI10_15,您需要修改NVIC的EXTI15_10_IRQn通道的优先级。 2. 接下来,您需要为每个EXTI线配置中断抢占优先级。这可以通过修改EXTI线的优先级寄存器(EXTI_PR)来完成。 以下是设置EXTI10、EXTI11、EXTI12、EXTI13、EXTI14、EXTI15中断优先级的示例代码: ```c // 启用EXTI10_15中断 HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0); // 配置EXTI10的中断优先级 HAL_NVIC_SetPriority(EXTI10_IRQn, 1, 0); // 配置EXTI11的中断优先级 HAL_NVIC_SetPriority(EXTI11_IRQn, 2, 0); // 配置EXTI12的中断优先级 HAL_NVIC_SetPriority(EXTI12_IRQn, 3, 0); // 配置EXTI13的中断优先级 HAL_NVIC_SetPriority(EXTI13_IRQn, 4, 0); // 配置EXTI14的中断优先级 HAL_NVIC_SetPriority(EXTI14_IRQn, 5, 0); // 配置EXTI15的中断优先级 HAL_NVIC_SetPriority(EXTI15_IRQn, 6, 0); // 启用NVIC中断 HAL_NVIC_EnableIRQ(EXTI15_10_IRQn); ``` 在这个示例中,我们首先为EXTI15_10_IRQn设置了一个较高的抢占优先级(0),然后为每个单独的EXTI线设置了不同的抢占优先级(1到6)。这样,当多个EXTI线同时触发中断时,它们将按照设置的优先级顺序执行。 请注意,这里的优先级值(1到6)是示例值,您可以根据需要进行调整。优先级值越低,优先级越高。 另外,由于EXTI10_15_IRQn是一个共享中断,您需要在EXTI15_10_IRQHandler中断处理函数中检查哪个EXTI线触发了中断,并相应地处理。例如: ```c void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if (GPIO_Pin == EXTI10_PIN) { // 处理EXTI10中断 } else if (GPIO_Pin == EXTI11_PIN) { // 处理EXTI11中断 } // ... 以此类推,检查其他EXTI线 } ``` 希望这能帮助您设置EXTI10、EXTI11、EXTI12、EXTI13、EXTI14、EXTI15的中断优先级。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1786 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1622 浏览 1 评论
1089 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
730 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1680 浏览 2 评论
1941浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
738浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
573浏览 3评论
598浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
560浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 09:41 , Processed in 0.731039 second(s), Total 50, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号