在很多使用STM32,HAL的例子中,通過(guò)中斷接收UART數(shù)據(jù),代碼如下所示: 最初(開(kāi)始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>) g; J* W8 j0 O% l
9 z9 V& [) g+ l2 t3 w+ c: b8 m[color=rgb(51, 102, 153) !important]復(fù)制代碼" _$ ~5 w+ A. \" m: t p
; e: J' {3 d: o/ k8 Y8 P# Q+ [$ j中斷接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>0 a1 B: D$ c: z- h9 g
7 ^& A- G; v7 N9 {% F* L[color=rgb(51, 102, 153) !important]復(fù)制代碼6 }3 K1 t9 n- C: E
我想知道,是否有可能在實(shí)際接收和再次啟動(dòng)中斷的(接收完成)回調(diào)之后丟失字節(jié)。 或者假設(shè)上面的中斷處理程序太短,數(shù)據(jù)仍然在UART緩沖區(qū)中?
$ _& E! ?6 C' C% U* y Z |