在很多使用STM32,HAL的例子中,通过中断接收UART数据,代码如下所示: 最初(开始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>
* R& y" w0 d" I! D) C/ P; o( U ! A* ]" O' }# H2 v+ U
[color=rgb(51, 102, 153) !important]复制代码+ q5 p4 f' q9 V6 A- X: Q, [* f
1 l: o0 M$ q5 `8 o中断接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>2 |: K" G/ w6 R; o' Z
: k$ a8 |8 |7 ]& h( i2 i[color=rgb(51, 102, 153) !important]复制代码
8 b) G' t5 }( J' n我想知道,是否有可能在实际接收和再次启动中断的(接收完成)回调之后丢失字节。 或者假设上面的中断处理程序太短,数据仍然在UART缓冲区中?
% h% Q) L3 j- o% u, ?+ g' B+ g5 A |