在很多使用STM32,HAL的例子中,通过中断接收UART数据,代码如下所示: 最初(开始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>; {4 a, k, m" K. R R% ~( K
4 [% k# J* H8 w: s1 L, g[color=rgb(51, 102, 153) !important]复制代码. F7 [# ^( e2 Y: d
$ U% I3 H5 d" ~% T+ l- ^: `中断接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>
7 Z! @; Y9 [( h e6 Q
) \0 M* p5 G5 M: H[color=rgb(51, 102, 153) !important]复制代码' f8 f& j3 T" D
我想知道,是否有可能在实际接收和再次启动中断的(接收完成)回调之后丢失字节。 或者假设上面的中断处理程序太短,数据仍然在UART缓冲区中?
, k$ w% ?' y2 ^6 x/ Q+ t- n/ m, ^6 v |