在很多使用STM32,HAL的例子中,通過中斷接收UART數(shù)據(jù),代碼如下所示: 最初(開始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>
" R, Z: S( G8 D& q
7 v+ @2 y; w5 D* s6 C' X[color=rgb(51, 102, 153) !important]復制代碼2 S( V, U1 x' }2 I
& \1 ?: W8 N, u3 b. a
中斷接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>* B V8 C# a) c% G+ h
$ g, B! Q2 z0 S4 ]1 U% X6 ?[color=rgb(51, 102, 153) !important]復制代碼8 c3 O: N) z, S
我想知道,是否有可能在實際接收和再次啟動中斷的(接收完成)回調(diào)之后丟失字節(jié)。 或者假設上面的中斷處理程序太短,數(shù)據(jù)仍然在UART緩沖區(qū)中? 9 B% C2 n$ Z6 Q
|