在很多使用STM32,HAL的例子中,通过中断接收UART数据,代码如下所示: 最初(开始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>
' Y2 Q6 y* i# F* ^) b2 H. _
$ L$ M w4 @# J! E0 M[color=rgb(51, 102, 153) !important]复制代码4 ]' R2 y$ L/ J/ B- E
( e2 P) S5 K1 N, `6 Y) V* N中断接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>
5 H) A m2 s9 E& ^4 |1 r
?* r- _# m0 ^[color=rgb(51, 102, 153) !important]复制代码9 q" @1 c) a3 k1 a- O
我想知道,是否有可能在实际接收和再次启动中断的(接收完成)回调之后丢失字节。 或者假设上面的中断处理程序太短,数据仍然在UART缓冲区中? 2 m; s- t1 f; m$ l/ m, A' {
|