微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 请教一个STM32串口接收卡住的问题

请教一个STM32串口接收卡住的问题

时间:10-02 整理:3721RD 点击:
请教一下大家;
STM32使用串口1,使用查询模式接收数据,如下:
u8 USART1_ReceivByte(void)
{
    u8 recev;
       
        while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);
    recev = USART_ReceiveData(USART1);
        return recev;
}
经过检查,是程序卡死在那个while循环里面,出现这种情况,一般是什么原因造成的呢?
(库里面的函数没修改过)
谢谢!


是跳线帽接错了,接收和发送短路了,就出现这种情况。

可能是接收数据头不对吧  没有收到有效数据 你用串口助手试一试

while后面多了个分号

调用你这个函数以后没有串口数据来岂不是会一直卡在这句话上。建议采用中断接收吧,比查询效率要高

同意2楼意见。话说回来就算你硬是想用查询模式接收数据,个人建议你在while1中加个超时处理~

问题找到了。谢谢,你的建议很好

这个串口是与指纹模块通讯的,每次发送命令,都会返回应答包的,所以不担心这个问题。确实使用中断会好很多。谢谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top