在很多使用STM32,HAL的例子中,通過中斷接收UART數(shù)據(jù),代碼如下所示: 最初(開始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>. y9 [$ y7 j' w' Y
3 p& K4 }6 b, c6 y4 G! v5 U
[color=rgb(51, 102, 153) !important]復(fù)制代碼
5 @( p4 S) w3 D' r: o& D+ P2 ~& U, A9 x4 `7 O7 e
中斷接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>
& Y/ `7 ^8 b1 q0 y% {5 k: \
* ~' a5 X. A4 y5 d: M8 g6 _! r[color=rgb(51, 102, 153) !important]復(fù)制代碼# s4 P1 `2 z# }" Q5 T3 d# E, w
我想知道,是否有可能在實(shí)際接收和再次啟動中斷的(接收完成)回調(diào)之后丟失字節(jié)。 或者假設(shè)上面的中斷處理程序太短,數(shù)據(jù)仍然在UART緩沖區(qū)中? . Y, k, Z' n' Q2 b
|