在很多使用STM32,HAL的例子中,通过中断接收UART数据,代码如下所示: 最初(开始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>8 z8 c! H( b- D# V9 W
2 s+ O% I3 `, T
[color=rgb(51, 102, 153) !important]复制代码
: n! ?* X! x( T$ U; S3 k6 [
* Z+ O; y3 P9 N* \$ ~中断接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>
0 u2 P7 a) w/ x4 L$ p- `2 d: K0 ?9 W
8 Z8 g: x" i3 r4 o- z2 @[color=rgb(51, 102, 153) !important]复制代码. H: ~ m7 K& ]
我想知道,是否有可能在实际接收和再次启动中断的(接收完成)回调之后丢失字节。 或者假设上面的中断处理程序太短,数据仍然在UART缓冲区中?
) \9 c8 x5 C% w, n1 m9 L* I W |