码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-06-16 16:47:22      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:arm   stm32   

技术分享

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

标签:arm   stm32   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!