stm32外部中断进入不了的原因分析
2013-07-20 10:22
507 查看
最近几天折腾stm32,遇见了很郁闷的问题,外部中断进入不了,最后找到解决方法的时候觉得……唉,下面总结几条原因以便于大家少走弯路。
1.切记打开复用时钟:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
2.最好加上一个EXTI_GenerateSWInterrupt(EXTI_LineX);产生软件中断便于判断是不是本来就配置错误;
3.开启硬件仿真:
![](http://www.openedv.com/upload/2012/7/18/46b94d8fb95c8dd043fc9016171077d7_718.png)
4.正确设置中断向量地址:
#if defined (VECT_TAB_RAM)
/* Set the Vector Table base location at 0x20000000 */
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); //设置中断向量在RAM
#else /* VECT_TAB_FLASH */
/* Set the Vector Table base location at 0x08000000 */
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); //设置中断向量在FLASH中
#endif
以上的几种解决方案都是网络上整理所得,再次感谢各位网友的贡献!
1.切记打开复用时钟:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
2.最好加上一个EXTI_GenerateSWInterrupt(EXTI_LineX);产生软件中断便于判断是不是本来就配置错误;
3.开启硬件仿真:
![](http://www.openedv.com/upload/2012/7/18/46b94d8fb95c8dd043fc9016171077d7_718.png)
4.正确设置中断向量地址:
#if defined (VECT_TAB_RAM)
/* Set the Vector Table base location at 0x20000000 */
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); //设置中断向量在RAM
#else /* VECT_TAB_FLASH */
/* Set the Vector Table base location at 0x08000000 */
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); //设置中断向量在FLASH中
#endif
以上的几种解决方案都是网络上整理所得,再次感谢各位网友的贡献!
相关文章推荐
- stm32外部中断寄存器配置分析
- STM32外部中断(EXTI)分析和应用
- stm32 外部中断库函数实现全程分析。(转,原作者历时三天,呕心沥血,剖析的很细致)
- stm32 EXTI中断BUG,无法进入外部中断的问题
- STM32中关于串口中断的调试(不断进入发送中断的原因)
- STM32简单入门程序分析之GPIO,外部中断
- STM32的外部中断
- STM32外部中断
- STM32外部中断
- stm32学习笔记:GPIO外部中断的使用
- STM32 F103 外部中断学习笔记
- STM32之外部中断控制
- STM32F107(互联网型)外部晶振用25MHZ 而STM32F103却用8MHZ的原因及其时钟来源分析
- STM32 GPIO外部中断总结
- STM32外部中断详解
- stm32中断学习篇(2)——以外部中断为例与多个中断的使用
- STM32之中断与事件---一个使用GPIO作为外部中断的示例
- 第17章 EXTI—外部中断/事件控制器—零死角玩转STM32-F429系列
- STM32学习笔记4:外部中断
- PIC452外部中断进不去的原因?