完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我现在需要20个外部中断,所需IO口PA0/1/2/3/4/8/9/10/15,PB7/8/9/14/15,PC6/7/8/9/13/14; |
|
相关推荐
2个回答
|
|
在STM32F103上,每个外部中断对应一个特定的IO引脚,并且每个IO引脚只能用于一个外部中断。因此,如果先设置了某个IO口的外部中断,后设置相同IO口的外部中断会覆盖先前的设置。
要解决这个问题,您可以通过重新配置已经设置的IO口的外部中断回调函数来更改其行为。具体步骤如下: 1. 首先,使用HAL库提供的函数禁用外部中断。 2. 更改IO口的外部中断回调函数为一个空函数或您自定义的函数,确保不会执行任何操作。 3. 设置另一个IO口的外部中断并配置相应的回调函数。 例如,您可以按照以下步骤设置中断: 1. 设置PA0的外部中断: ```c HAL_GPIO_Init(GPIOA, GPIO_PIN_0, GPIO_MODE_IT_RISING); HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0); HAL_NVIC_EnableIRQ(EXTI0_IRQn); HAL_GPIO_EXTI_Callback(EXTI0_IRQn); // 设置回调函数为空函数或自定义函数 ``` 2. 设置PB8的外部中断: ```c HAL_GPIO_Init(GPIOB, GPIO_PIN_8, GPIO_MODE_IT_RISING); HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0); HAL_NVIC_EnableIRQ(EXTI9_5_IRQn); HAL_GPIO_EXTI_Callback(EXTI9_5_IRQn); // 设置回调函数为空函数或自定义函数 ``` 通过这种方式,您可以在每个IO口上设置不同的外部中断,并为每个外部中断设置一个独立的回调函数。重要的是要记住,在更改回调函数之前始终禁用外部中断,并在更改后重新启用外部中断。 |
|
|
|
如果 外部中断 不是同时 就可以分组使用,如果是 同时 单纯靠芯片自己好像没办法
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32进行DMA数据转运,为什么只有A组最后一位数据被转运到B组去?
1229 浏览 2 评论
1561 浏览 3 评论
1185 浏览 0 评论
嵌入式开发 Win11安装ST-Link 提示 设备描述符请求失败 怎么处理?
1317 浏览 0 评论
1604 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-17 17:32 , Processed in 0.391189 second(s), Total 43, Slave 37 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号