在很多使用STM32,HAL的例子中,通过中断接收UART数据,代码如下所示: 最初(开始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>' W' s ^. c* e! }& F
4 e( a* b/ p+ Z8 c1 O& o# L8 s
[color=rgb(51, 102, 153) !important]复制代码
4 {& J4 x9 q4 V( ~) t
) |1 [' \/ j$ U中断接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>
2 K$ B; P6 H" s9 s + \ t$ i2 G0 |' }3 \3 r
[color=rgb(51, 102, 153) !important]复制代码
: W& u/ S3 V, j+ T" v2 O我想知道,是否有可能在实际接收和再次启动中断的(接收完成)回调之后丢失字节。 或者假设上面的中断处理程序太短,数据仍然在UART缓冲区中?
4 j1 c0 Q, B4 W0 o# Q/ ? |