×
单片机 > 单片机程序设计 > 详情

STM32串口悬空导致CPU持续进入中断函数

发布时间:2020-08-21 发布时间:
|

STM32的串口开启中断,在串口悬空(即不接外设)的情况下,CPU会不断的进串口中断服务函数


并且接收到的数据为0,当你把外设接上,一切OK。


void USART2_IRQHandler(void)  

{  

    INT8U tmp;  

    /* OK */  

    if(USART_GetITStatus(USART2, USART_IT_RXNE) == SET){  

        USART_ClearITPendingBit(USART2, USART_IT_RXNE);  

        tmp = USART_ReceiveData(USART2);          

    }  

}  

其实原因很简单,在初始化串口是输入引脚设置成了悬空输入-GPIO_Mode_IN_FLOATING。

设置成上/下拉输入,就可以解决。

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;  

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;  

GPIO_Init(GPIOA, &GPIO_InitStructure);  


关键字:STM32  串口  CPU  中断函数 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
AVR熔丝位操作时的要点和需要注意的相关事项