在很多使用STM32,HAL的例子中,通過中斷接收UART數(shù)據(jù),代碼如下所示: 最初(開始接收): - <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>
% m. t6 r$ E3 k
2 e9 V5 }& K0 d/ v' }- ~6 I8 X[color=rgb(51, 102, 153) !important]復(fù)制代碼
. Y) X$ l0 s( p5 W# }( }6 U* }
6 A, t0 {! P. G' r, t中斷接收完成后: - <font size="4">//Interrupt callback routine
- void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
- {
- ...
- HAL_UART_Receive_IT(&huart, Rx_data, 1);
- }</font>* P9 H% z/ P3 m" g5 l' k+ {
. e: X. Q F, t3 {[color=rgb(51, 102, 153) !important]復(fù)制代碼
/ F l- @# }7 }: Z6 ~$ C# D2 @我想知道,是否有可能在實(shí)際接收和再次啟動(dòng)中斷的(接收完成)回調(diào)之后丟失字節(jié)。 或者假設(shè)上面的中斷處理程序太短,數(shù)據(jù)仍然在UART緩沖區(qū)中? 3 p+ f7 D$ C4 S' B, m; I* X' E [
|