在很多使用STM32,HAL的例子中,通过中断接收UART数据,代码如下所示: 最初(开始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>' O" D& p1 y. U4 [8 | ?
; A7 q) s" T1 R; R- b3 ~- E& l[color=rgb(51, 102, 153) !important]复制代码0 f0 ^- B, n' Z% A+ ]) }
% l+ I3 j& W- X9 t2 t; l中断接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>
0 u( i9 H. R! v1 z6 Q" c) k 6 P! U9 y+ A$ b
[color=rgb(51, 102, 153) !important]复制代码/ @$ Q' _5 q% o u3 l* i' b! Y" ?8 a
我想知道,是否有可能在实际接收和再次启动中断的(接收完成)回调之后丢失字节。 或者假设上面的中断处理程序太短,数据仍然在UART缓冲区中? 4 v `" E- E- W" U& m0 F
|