在很多使用STM32,HAL的例子中,通过中断接收UART数据,代码如下所示: 最初(开始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>
8 T3 |7 y' n9 }) G; d2 A% A9 g$ H
# V9 e8 y7 }' h* G[color=rgb(51, 102, 153) !important]复制代码
' j+ N$ T1 B8 ^- @8 B3 v
% Q3 j9 G, Z7 _& }中断接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font># L* l7 w& y* ^: _, V
& S6 u/ g: [, O \9 H" \4 R
[color=rgb(51, 102, 153) !important]复制代码3 P1 C/ A, D* o- g, Z. d
我想知道,是否有可能在实际接收和再次启动中断的(接收完成)回调之后丢失字节。 或者假设上面的中断处理程序太短,数据仍然在UART缓冲区中? ' T# A# O) W: P) d5 r: u
|