99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UART數(shù)據(jù)丟失可能原因

嵌入式應(yīng)用開發(fā) ? 來源:嵌入式應(yīng)用開發(fā) ? 作者:嵌入式應(yīng)用開發(fā) ? 2022-09-28 15:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、接收溢出丟失數(shù)據(jù)
指未及時取走數(shù)據(jù)導(dǎo)致溢出錯誤而丟失數(shù)據(jù),通常是發(fā)生在大量數(shù)據(jù)、以查詢方式接收數(shù)據(jù)的情況下。在MCU啟動過程中、接收數(shù)據(jù)過多處理不及時、復(fù)雜系統(tǒng)響應(yīng)不及時等情況都會出現(xiàn)數(shù)據(jù)丟失的情況。
解決辦法:

  • 及時清除溢出錯誤標志
  • 利用通信協(xié)議過濾因數(shù)據(jù)丟失導(dǎo)致的問題

2、接收中斷丟失數(shù)據(jù)

使用UART中斷接收數(shù)據(jù)相比查詢接收數(shù)據(jù)的方式更常見,中斷方式比查詢方式響應(yīng)更及時,但不合理處理同樣也會存在數(shù)據(jù)丟失的情況。

在數(shù)據(jù)量大時,UART接收中斷函數(shù)耗時、優(yōu)先級低等情況下容易丟失數(shù)據(jù)。

解決辦法:

  • 中斷函數(shù)里減少不必要的耗時
  • 合理分配中斷優(yōu)先級
  • 使能中斷前清除標志位

3、時鐘誤差導(dǎo)致丟失數(shù)據(jù)

在通信波特率較高的情況下,如果時鐘誤差加大,很可能導(dǎo)致數(shù)據(jù)丟失。

解決辦法:

  • 使用更高精度晶振
  • 降低通信波特率

UART發(fā)送丟失數(shù)據(jù)

UART發(fā)送丟失數(shù)據(jù)很多工程師都遇到過,通常情況下是傳輸未完成的原因。
HAL庫已經(jīng)有幾年了,但還是有很多工程師都使用標準外設(shè)庫,這時如果自己封裝接口不當,就會存在發(fā)送最后一字節(jié)數(shù)據(jù)丟失的問題。

1、UART傳輸未完成導(dǎo)致數(shù)據(jù)丟失
如下代碼,只考慮非空,但實際傳輸并未完成。

void UART_SendByte(uint8_t Data)

不過,發(fā)送非空不代表發(fā)送完成,雖然在某些場合更高效,但某些場合就會導(dǎo)致數(shù)據(jù)丟失。

比如:

使用此函數(shù)發(fā)送之后進入休眠、關(guān)閉接收端設(shè)備電源等情況下。

解決辦法:

  • 等待發(fā)送完成
void UART_SendByte(uint8_t Data)

如果使用標準外設(shè)庫,要根據(jù)實際情況封裝函數(shù),比如發(fā)送超時。

或者使用HAL封裝的接口,代碼包含判斷傳輸完成:

HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)

2、線路延時導(dǎo)致數(shù)據(jù)丟失

UART通常會使用232或者485以增加傳輸距離和增強干擾。但是一旦數(shù)據(jù)線路太長就存在傳輸延時的情況,特別是485傳輸長距離,并使用MCU控制傳輸方向的情況下。

解決辦法:

  • 軟件增加延時處理
  • 使用通信協(xié)議增加應(yīng)答機制

3、其他原因

UART應(yīng)用的場景比較多,有些應(yīng)用在復(fù)雜的工廠,干擾較大從而導(dǎo)致數(shù)據(jù)丟失;有些應(yīng)用在溫差較大的環(huán)境,時鐘偏移較大導(dǎo)致數(shù)據(jù)丟失。

解決辦法需要根據(jù)實際情況,有針對性解決問題。比如:使用更好的通信線,軟件做好容錯處理等。

pYYBAGMz_iiAGMfrAALKJSGmGHg128.png  


審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17978

    瀏覽量

    366663
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7256

    瀏覽量

    91831
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1276

    瀏覽量

    103909
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    EEPROM數(shù)據(jù)丟失原因與對策

    EEPROM數(shù)據(jù)丟失原因與對策
    發(fā)表于 11-25 20:32

    求單片機數(shù)據(jù)丟失原因

    STC單片機的EEPROM中存儲的數(shù)據(jù)丟失,想知道丟失的原理;還有J-LINK固件丟失原因。
    發(fā)表于 02-27 12:38

    請問6657upp丟失數(shù)據(jù)可能是什么原因導(dǎo)致?

    求教! 在FPGA和DSP使用Upp傳輸數(shù)據(jù)的時候,F(xiàn)PGA給DSP發(fā)送數(shù)據(jù),出現(xiàn)DSP丟失數(shù)據(jù)的情況。比如FPGA發(fā)送數(shù)據(jù)從0到1000,
    發(fā)表于 07-24 09:54

    UART可能性會導(dǎo)致數(shù)據(jù)丟失嗎?

    ){ ... HAL_UART_Receive_IT(&huart, Rx_data, 1);}我想知道,是否有可能在實際接收和再次啟動中斷的(接收完成)回調(diào)之后丟失字節(jié)。或者假設(shè)上面的中斷處理程序太短,
    發(fā)表于 09-21 11:30

    工控電腦使用中的“這些”原因會造成數(shù)據(jù)丟失,請勿忽視,歡迎補充

    ①用戶的錯誤操作。由于用戶錯誤操作而導(dǎo)致數(shù)據(jù)丟失的情況,在數(shù)據(jù)丟失的主要原因中所占比例很大。用戶極小的疏忽都可能造成
    發(fā)表于 12-10 15:17

    芯片大批量生產(chǎn)時發(fā)現(xiàn)部分芯片flash里面數(shù)據(jù)丟失,可能是什么原因導(dǎo)致的?

    芯片大批量生產(chǎn)時發(fā)現(xiàn)部分芯片flash里面數(shù)據(jù)丟失,可能是什么原因導(dǎo)致的?
    發(fā)表于 07-22 06:10

    EEPROM數(shù)據(jù)丟失原因分析

    本內(nèi)容介紹眾多EEPROM數(shù)據(jù)丟失原因
    發(fā)表于 05-24 11:35 ?102次下載
    EEPROM<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>丟失</b><b class='flag-5'>原因</b>分析

    UART 發(fā)送數(shù)據(jù)丟失最后一個字節(jié)

    STM32 UART 發(fā)送數(shù)據(jù)丟失最后一個字節(jié)
    發(fā)表于 12-04 15:10 ?0次下載

    Flash數(shù)據(jù)丟失原因

    芯片貼板后跑不起來?Flash里面的數(shù)據(jù)在使用過程中莫名改變或不翼而飛?程序丟失可能無法正常運行,從而造成整個系統(tǒng)崩潰,下面我們來看看是什么原因數(shù)
    發(fā)表于 10-13 20:31 ?11次下載
    Flash<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>丟失</b>的<b class='flag-5'>原因</b>

    關(guān)于UART發(fā)送數(shù)據(jù)丟失最后一個字節(jié)問題的詳細解析-pdf

    STM32 UART_發(fā)送數(shù)據(jù)丟失最后一個字節(jié)
    發(fā)表于 04-10 11:23 ?3次下載

    工控機數(shù)據(jù)丟失原因及解決方法

    在我們使用工控機的時候,偶爾會發(fā)生系統(tǒng)數(shù)據(jù)丟失的情況,這是因為什么原因呢?下面我們就來講一講工控機數(shù)據(jù)發(fā)生的原因以及解決方法。
    發(fā)表于 06-30 16:48 ?3784次閱讀

    探析STM32上UART丟失的那一字節(jié)數(shù)據(jù)

    STM32上UART狀態(tài)寄存器中的幾個標志位:TXE、TC、RXNE、ORE。這幾個標志位在編程中經(jīng)常使用,數(shù)據(jù)丟失可能就是對它們操作不當而導(dǎo)致出錯。
    的頭像 發(fā)表于 12-19 15:36 ?4306次閱讀

    UART發(fā)送數(shù)據(jù)丟失最后一個字節(jié)

    電子發(fā)燒友網(wǎng)站提供《UART發(fā)送數(shù)據(jù)丟失最后一個字節(jié).pdf》資料免費下載
    發(fā)表于 08-01 17:57 ?1次下載
    <b class='flag-5'>UART</b>發(fā)送<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>丟失</b>最后一個字節(jié)

    有三種可能原因會導(dǎo)致信號丟失

    有三種可能原因會導(dǎo)致信號丟失? 近年來,隨著智能手機、平板電腦等移動設(shè)備的廣泛普及,人們對于移動通信的需求也愈加強烈。不論是手機打電話、發(fā)短信,還是使用移動網(wǎng)絡(luò)上網(wǎng)、視頻通話等操作,信號都是
    的頭像 發(fā)表于 10-30 09:21 ?3708次閱讀

    ROM數(shù)據(jù)丟失的常見原因

    的常見原因 1. 硬件故障 1.1 物理損壞 ROM芯片可能因為物理沖擊、高溫、濕度、腐蝕等因素而損壞。這些因素可能導(dǎo)致芯片內(nèi)部電路斷裂或短路,從而造成數(shù)據(jù)
    的頭像 發(fā)表于 11-04 10:29 ?2649次閱讀