国产精品乱码一区-性开放网站-少妇又紧又爽视频-西西大胆午夜人体视频-国产极品一区-欧美成人tv-四虎av在线-国产无遮挡无码视频免费软件-中文字幕亚洲乱码熟女一区二区-日产精品一区二区三区在线观看-亚洲国产亚综合在线区-五月婷婷综合色-亚洲日本视频在线观看-97精品人人妻人人-久久久久久一区二区三区四区别墅-www.免费av-波多野结衣绝顶大高潮-日本在线a一区视频高清视频-强美女免费网站在线视频-亚洲永久免费

機(jī)械社區(qū)

標(biāo)題: UART的可能性會(huì)導(dǎo)致數(shù)據(jù)丟失嗎? [打印本頁(yè)]

作者: 布谷鳥(niǎo)科技    時(shí)間: 2018-9-21 11:36
標(biāo)題: UART的可能性會(huì)導(dǎo)致數(shù)據(jù)丟失嗎?
在很多使用STM32,HAL的例子中,通過(guò)中斷接收UART數(shù)據(jù),代碼如下所示:
最初(開(kāi)始接收):
  • <font size="4">HAL_UART_Receive_IT(&huart1, Rx_data, 1); </font>  L/ l) ?, J: M' q; d/ _

/ C% h' v% \! n* |[color=rgb(51, 102, 153) !important]復(fù)制代碼

, P/ u$ I+ ?2 I9 ]

+ U) G* `* U! X3 R0 p2 ^* m
中斷接收完成后:
  • <font size="4">//Interrupt callback routine
  • void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
  • {
  •     ...
  •     HAL_UART_Receive_IT(&huart, Rx_data, 1);
  • }</font>3 s0 b# A' E, q1 n$ z. q$ y6 ~" L

8 g3 g- \5 [0 ~[color=rgb(51, 102, 153) !important]復(fù)制代碼

- u. b( x. a' L8 g
我想知道,是否有可能在實(shí)際接收和再次啟動(dòng)中斷的(接收完成)回調(diào)之后丟失字節(jié)。
或者假設(shè)上面的中斷處理程序太短,數(shù)據(jù)仍然在UART緩沖區(qū)中?
+ @8 V1 m& K; i4 p+ S; I

作者: NEMO_LLSoQ    時(shí)間: 2018-9-22 17:53
理論上不會(huì),UART接收完成才會(huì)產(chǎn)生事件' Y  x4 J8 z6 h/ v
UART模塊內(nèi)部肯定會(huì)做緩存處理。( [4 v2 N0 ]/ R5 D
如果還擔(dān)心丟數(shù)據(jù),請(qǐng)使用DMA大法!




歡迎光臨 機(jī)械社區(qū) (http://m.whclglass.com.cn/) Powered by Discuz! X3.5