在很多使用STM32,HAL的例子中,通过中断接收UART数据,代码如下所示: 最初(开始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>0 @9 Z4 I1 N9 V- }# |, W0 L
, z* l1 w, ~7 P5 T8 H5 B- E[color=rgb(51, 102, 153) !important]复制代码
W: } m( y9 b9 ?* q, ~8 b7 v* W6 T6 o
中断接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>
: w4 a! g- c2 e, ] - K# \; K8 p2 l! q0 O# O: m0 L
[color=rgb(51, 102, 153) !important]复制代码0 f6 v/ L( ^& Y" J1 B# i
我想知道,是否有可能在实际接收和再次启动中断的(接收完成)回调之后丢失字节。 或者假设上面的中断处理程序太短,数据仍然在UART缓冲区中? 9 C5 A) x/ f$ c+ u, u2 L2 a
|