在很多使用STM32,HAL的例子中,通过中断接收UART数据,代码如下所示: 最初(开始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>
# P+ L' {! p1 x+ S' V3 O
- j+ J! X2 Y' z1 u \$ {[color=rgb(51, 102, 153) !important]复制代码
( w( d% i S9 O# K; w/ D' S' H$ G, c3 Q
中断接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>
8 i, X2 C+ t0 ?/ r: Z0 D , s) R- o* _ |# l& D" o8 }
[color=rgb(51, 102, 153) !important]复制代码
" H/ v* A3 t+ h5 F" {我想知道,是否有可能在实际接收和再次启动中断的(接收完成)回调之后丢失字节。 或者假设上面的中断处理程序太短,数据仍然在UART缓冲区中? 4 M5 p7 p- q3 Y7 d9 ]
|