在很多使用STM32,HAL的例子中,通过中断接收UART数据,代码如下所示: 最初(开始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>/ S3 A% e& [+ [0 c
0 ~" ] @3 U3 a1 J( l+ T
[color=rgb(51, 102, 153) !important]复制代码
3 X. P0 Q: G. A6 [, K1 z) A
' ^- w3 r! X! a9 [% i2 m% F中断接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>
9 [- [4 W( }6 V5 f) e# m; F M
" t, Y# _3 m- E4 C# v* j& ]/ ?[color=rgb(51, 102, 153) !important]复制代码
4 @5 R) b3 f8 ]) I$ O8 f我想知道,是否有可能在实际接收和再次启动中断的(接收完成)回调之后丢失字节。 或者假设上面的中断处理程序太短,数据仍然在UART缓冲区中?
! E: o% B4 \& I; M5 E |