UART的可能性会导致数据丢失吗?

2019-07-14 17:30发布

在很多使用STM32,HAL的例子中,通过中断接收UART数据,代码如下所示:最初(开始接收):
  1. <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>
复制代码

中断接收完成后:
  1. <font size="4">//Interrupt callback routine
  2. void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)  
  3. {
  4.     ...
  5.     HAL_UART_Receive_IT(&huart, Rx_data, 1);            
  6. }</font>
复制代码我想知道,是否有可能在实际接收和再次启动中断的(接收完成)回调之后丢失字节。或者假设上面的中断处理程序太短,数据仍然在UART缓冲区中?


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
huangdajiang
1楼-- · 2019-07-15 18:33
但是如果你开始介绍一些更复杂的外围设备,你会发现代码有多糟糕 - “bin”图标开始是唯一可行的解​​决方案。IMO - 留下黑洞 - 做正确的uC编程。
Lucia_nie
2楼-- · 2019-07-15 20:21
问题是我对微处理器没有多少经验...只是使用STM32和Arduino(使用默认库,可能与你所谓的膨胀软件相同)。顺便说一句,我确信HAL库包含许多通用代码,这些代码可以在为特定目标制作代码时不需要。

一周热门 更多>