在很多使用STM32,HAL的例子中,通过中断接收UART数据,代码如下所示: 最初(开始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>+ g4 Z. v+ P/ m4 a( \" j
( g; d R3 d+ p" C; Q
[color=rgb(51, 102, 153) !important]复制代码* }3 F Y+ q9 a6 v4 x7 Q7 B. Q
! `" ?3 r: X- M0 {
中断接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>$ B/ H1 D" K3 Y0 j/ W. d7 e
8 F6 b7 s: F9 K* Q* C4 I9 l0 u
[color=rgb(51, 102, 153) !important]复制代码
" I, g5 P! B0 ^7 g: V+ {; W我想知道,是否有可能在实际接收和再次启动中断的(接收完成)回调之后丢失字节。 或者假设上面的中断处理程序太短,数据仍然在UART缓冲区中? : c1 u+ y) ]0 l( M6 K
|