STM32的中断配置的一些新理解

来源:互联网 发布:南通东华软件 培训 编辑:程序博客网 时间:2024/05/17 07:21

今天我在uCos下面配置USART+DMA中断处理数据接受发送,当我把代码写好后运行,发现程序跑飞了,程序跑到了default handler里去了,产生了未知中断才会到这里,但是我已经写了DMA中断服务程序,为何不进入DMA中断服务程序反而进入了default handler呢?

带着问题,我就去找度娘,最后终于找到了问题,中断整个配置过程应该是这样的吧(个人的理解),首先在stm32f10x.h里将中断向量和中断地址绑定,然后在startup文件里面讲中断向量和中断函数绑定,

然后再将中断函数与中断服务函数绑定,其中中断服务函数定义为弱类型,如果你没有自己定义强类型的中断服务函数,则未定义的中断向量将和default handler这个函数进行绑定,

所以发生未定义中断服务函数的中断将直接跳转到default handler死循环中。结果我发现startup文件中中断服务函数定义的名字与我的中断服务函数的名字不同,所以当发生DMA中断时,无法跳转到我所定义的IRQ函数中,而跳转到default handler函数中,而导致程序跑飞。

原创粉丝点击