在很多使用STM32,HAL的例子中,通過中斷接收UART數據,代碼如下所示: 最初(開始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>0 T9 D- S7 L D9 l8 z0 A
" g U; F3 g) [* R1 J; i
[color=rgb(51, 102, 153) !important]復制代碼0 u- W/ B# ]4 g6 P0 | x, Y
$ F8 A+ z! n! }# V/ C; ]中斷接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>+ O) ~2 U- |; A& |
& y7 o G8 z' ?0 b' u, W9 J[color=rgb(51, 102, 153) !important]復制代碼
) e) Y/ ^/ T4 s: F* L5 p$ P我想知道,是否有可能在實際接收和再次啟動中斷的(接收完成)回調之后丟失字節。 或者假設上面的中斷處理程序太短,數據仍然在UART緩沖區中?
; O2 L% G( ~: ] H4 R( D6 m |