stm32串口中断丢失数据,情况如下,请帮忙解决啊!!!

2025-04-06 11:57:07
推荐回答(1个)
回答1:

并不是上位机太快,而是你把程序写慢了。

两个问题:
1)接收中断函数里怎么能有发送标志位的判断?
这句去掉:while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
2)你这个串口用的方式不对,你每接收一个数据需要进一次中断,实际上应该是进一次中断把所有数据接收完毕。通过一个超时判断判断是否后续还有数据,没有数据了才退出中断函数。