首页 > 其他 > 详细

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

时间:2015-06-16 16:46:44      阅读:189      评论:0      收藏:0      [点我收藏+]

技术分享

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持续进入中断函数

原文:http://blog.csdn.net/u013686019/article/details/46519689

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!