F407开发板,第九章“串口通信实验的中断”与第十章“外部中断实验”关于中断,2章为什么初始化不一样?

2019-07-20 18:21发布

第九章“串口通信”这一章,有一个串口接收中断,是用函数“NVIC_Init()”初始化的,而且工程中也没有添加库函数“stm32f4xx_exti.c”;
但是第十章“外部中断函数”这一章,却用函数“EXTI_Init()”初始化,且工程中添加了“stm32f4xx_exti.c”;


请问这2种中断有什么差别?导致要使用不同库函数初始化,非常谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
taizonglai
2019-07-20 23:20
本帖最后由 zuozhongkai 于 2016-12-6 10:16 编辑
Gene 发表于 2016-12-6 10:02
NVIC_Init()在misc.c里面
EXTI_Init()在stm32f4xx_exti.c
两个初始化的内容也不一样

看错了,EXTI_Init()函数是库里面的,用来根据你设置的参数配置外部中断相关寄存器的,里面没有用NVIC_Init()。EXTI_Init()和NVIC_Init()是两个不同功能的函数!NVIC_Init()用来设置某个中断的优先级,比如串口中断,定时器中断,外部中断等等!但是串口中断、定时器中断、外部中断等这些中断它们还需要其他的设置,比如外部中断就需要设置中断引脚,IO复用什么的。这个时候就是由函数EXTI_Init()来完成的。还有,说谁的串口中断使用了外部中断!你已经彻底混乱了。去看看参考手册吧,串口的中断章节和外部中断章节

一周热门 更多>