在很多使用STM32,HAL的例子中,通過中斷接收UART數據,代碼如下所示: 最初(開始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>
7 J6 M$ X( U' ]# A: d) s
" B5 W1 W/ {: J" q[color=rgb(51, 102, 153) !important]復制代碼& @" ~2 V2 }8 x; U+ u' M9 j8 ]
! v# w+ D5 p( O/ k% |
中斷接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>" \- ~- d6 m3 A9 F
5 B2 S6 l3 G# A: }' H4 T1 q$ O4 x[color=rgb(51, 102, 153) !important]復制代碼
7 `1 p6 Q8 D! N' K我想知道,是否有可能在實際接收和再次啟動中斷的(接收完成)回調之后丟失字節。 或者假設上面的中斷處理程序太短,數據仍然在UART緩沖區中? / `+ ^3 F: U: w& \% n8 o' R
|