久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

機械社區

標題: UART的可能性會導致數據丟失嗎? [打印本頁]

作者: 布谷鳥科技    時間: 2018-9-21 11:36
標題: UART的可能性會導致數據丟失嗎?
在很多使用STM32,HAL的例子中,通過中斷接收UART數據,代碼如下所示:
最初(開始接收):
  • <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>
    $ v$ `% L" `! a, j$ i) F

: J$ s1 Y, M* c% f6 X[color=rgb(51, 102, 153) !important]復制代碼

0 t: y5 ]9 X) R. Y

7 d6 E! D$ r: n
中斷接收完成后:
  • <font size="4">//Interrupt callback routine
  • void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
  • {
  •     ...
  •     HAL_UART_Receive_IT(&huart, Rx_data, 1);
  • }</font>
    # r7 T: S; T1 s2 W
+ z) w# b5 n, q9 F3 _* b" W3 k1 o) R
[color=rgb(51, 102, 153) !important]復制代碼
- c7 G- M$ r" _( [! A- d
我想知道,是否有可能在實際接收和再次啟動中斷的(接收完成)回調之后丟失字節。
或者假設上面的中斷處理程序太短,數據仍然在UART緩沖區中?
2 N- P' ]3 s, f; J6 ~; w( c

作者: NEMO_LLSoQ    時間: 2018-9-22 17:53
理論上不會,UART接收完成才會產生事件
& ^- {! @* [0 n% x% t0 rUART模塊內部肯定會做緩存處理。  ~$ s7 a, ]6 g
如果還擔心丟數據,請使用DMA大法!




歡迎光臨 機械社區 (http://www.ytsybjq.com/) Powered by Discuz! X3.5