在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

關于 USART很多人都容易忽視的一個問題

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-24 11:38 ? 次閱讀

Ⅰ、寫在前面

今天這篇文章分享的知識點比較少,但比較重要,是大部分人在實際項目開發中都容易忽視,且容易犯下的低級錯誤。

本文講述在項目開發中,或在學習中經常遇到USART發送字符串,對方沒有接收完成(最后一兩字節),也就是最后字節數據丟失了。具體可以看下面章節實驗。

關于本文的更多詳情請往下看。

Ⅱ、實例工程

為了方便大家學習,提供實驗源代碼工程給大家參考。

STM32F10x_SART(驗證USART發送字符串):

https://yunpan.cn/ckInh8YTwWHVP訪問密碼 81f9

提供下載的實例實現的功能比較簡單,主要是用于驗證不同情況下,發送字符的不同。

實例實現功能可以從下面main函數中看的出來,打印數據,進入待機。為了方便用戶進入待機不能下載程序,例程使用了一個喚醒按鍵PC13(可以修改),喚醒有一個LED閃爍和延時,這個期間可以重新下載代碼。

Ⅲ、本文要點

這里主要說的是在特殊情況下發送字符軟件代碼的寫法。

特殊情況指的是:

1.調用發送字符串函數“發送完”本機立即掉電;

2.調用發送字符串函數“發送完”從機立即掉電;

【上面兩種主要用于芯片對電源控制的項目中】

3.調用發送字符串函數“發送完”立刻進入待機或停機;

其實本文主要說的是兩個標志位:USART_FLAG_TXE 和 USART_FLAG_TC.

USART_FLAG_TXE發送緩沖區空標志:說明可以往數據寄存器寫入數據了,但并不代碼數據發送完成了。

USART_FLAG_TC發送完成標志:這個才是代表USART在緩沖區的數據發送完成了,即從機接收到了數據。

這兩個標志的區別在于:它們分別表示數據在發送過程中,在兩個不同的階段中的完成情況。TXE 表示數據被從發送緩沖區中取走,轉移到的移位寄存器中,此時發送緩沖是空的,可以向其中補充新的數據了。而 TC 則表示最后放入發送緩沖區的數據已經完成了從移位寄存器向發送信號線 Tx 上的轉移。所以,判定數據最終發送完成的標志是 TC,而不是 TXE.

下面講述在不同代碼寫法下,得到不同實驗效果【調試助手接收數據】:

1.常見寫法一

這種寫法在不是特殊(不掉電、不待機等)情況下,問題不大,USART數據會成功發送出去。 但是在上面說的特殊情況下,問題就來了,代碼只將數據放到了發送緩沖區,而沒有發送出去就掉電或待機了,這個時候其實最后兩個字符是沒有發送出去的。

2.常見寫法二

這種寫法達到的效果和上面存在不同的就是倒數第二個數據發送出去了,也就是只有最后一個字符是沒有發送出去的。

3.常見寫法三


這種寫法達到的效果和上面兩種寫法有不一樣,發送了10個字符。

4.寫法四


這種寫法按理說可以實現功能,但實際多次試驗結果確實第一字節數據丟失了。

5.寫法五(正確寫法)


這種寫法是比較完成,為了保守起見,在特殊情況下使用該寫法。。

至此,常見軟件寫法都給出了源代碼和試驗效果,請根據自己實際情況寫代碼驗證。

Ⅳ、說明

以上幾點內容比較容易出現問題,希望對你項目開發起到幫助作用。

以上總結僅供參考,若有不對之處,敬請諒解。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 源代碼
    +關注

    關注

    96

    文章

    2949

    瀏覽量

    67565
  • USAR
    +關注

    關注

    0

    文章

    4

    瀏覽量

    8457
  • main
    +關注

    關注

    0

    文章

    38

    瀏覽量

    6313
收藏 0人收藏

    評論

    相關推薦

    ESD防護設計中的10常見誤區,你中招了嗎?

    在現代電子產品中,ESD(靜電放電)防護已成為設計中不可忽視環。然而,即便是經驗豐富的工程師,也常會在ESD設計中掉進些看似“理所當然”的誤區。以下總結了10在實際設計中最常見
    的頭像 發表于 04-24 09:51 ?84次閱讀
    ESD防護設計中的10<b class='flag-5'>個</b>常見誤區,你中招了嗎?

    STM32學習USART之基礎篇(可下載)

    今天分享 USART 設計前的基礎知識我們先來了解下有關通信的基本概念:通信:兩設備之間進行數據交換時,稱這個過程為兩設備間的通信并行通信:設備之間的數據是以
    發表于 03-31 15:07 ?3次下載

    stm32g0b1中的usart5進不去HAL_UARTEx_RxEventCallback,為什么?

    請教一下關于stm32g系列的問題,stm32g0b1中的usart5進不去HAL_UARTEx_RxEventCallback,cudemx上配置跟其他串口也是樣的,打開中斷了,
    發表于 03-13 06:51

    為什么IIC總線會難住這么多人

    為什么 IIC 總線讓很多人頭疼?其實可以把它想象成場復雜的 "設備對話游戲",新手容易在這些地方栽跟頭:
    的頭像 發表于 03-12 10:14 ?347次閱讀
    為什么IIC總線會難住這么<b class='flag-5'>多人</b>?

    如何使用DMA進行USART不定長度接收

    在上講中,我們對USART進行了簡單介紹,并講解了如何在不使用DMA的情況下進行不定長度數據接收,本講將著重講解如何使用DMA進行USART不定長度接收。
    的頭像 發表于 02-18 17:01 ?688次閱讀
    如何使用DMA進行<b class='flag-5'>USART</b>不定長度接收

    為什么很多古建筑、寺容易著火?

    、安全用電隱患 線路老化:古建筑寺廟建成時間久,部分電氣線路可能使用多年未更新,絕緣層老化、破損,容易引發漏電、短路事故,進而可能引發火災。安科瑞+武陳燕+17269603655 過載用電:隨著
    的頭像 發表于 12-25 15:32 ?527次閱讀
    為什么<b class='flag-5'>很多</b>古建筑、寺<b class='flag-5'>容易</b>著火?

    高速、RF射頻信號的參考平面分析

    對于電子愛好者來說,在PCB設計中,參考平面的問題經常讓很多人感到困惑。眾所周知,電源平面可以作為參考平面,常見的6層板采用電源層
    的頭像 發表于 12-25 11:37 ?479次閱讀
    高速、RF射頻信號的參考平面分析

    電平匹配問題,簡單卻容易忽視

    導讀在電路設計中,電平匹配是基本要求,但常常被忽視,可能導致設備故障和通信異常。本文我們將揭示如何避免因電平不匹配導致的設備故障,并提供實用的設計建議,確保您的電路設計既高效又穩定。電平匹配
    的頭像 發表于 12-20 11:34 ?836次閱讀
    電平匹配問題,簡單卻<b class='flag-5'>容易</b>被<b class='flag-5'>忽視</b>

    掌握調試技巧是攻克嵌入式學習難點的關鍵

    為什么很多人說嵌入式開發很難? 其實,嵌入式開發的難度相對來說不算大,只是嵌入式開發會遇到各種各樣奇奇怪怪的問題,問題多了,很多人就覺得難。 如果把這些問題一個一個拆解開來看,其實都是小問題。今天
    的頭像 發表于 11-18 11:10 ?727次閱讀
    掌握調試技巧是攻克嵌入式學習難點的關鍵

    文看懂為什么貼片共模電感的感量在電路中會不穩定

    的參數。本篇我們來探討很多人關心的問題——貼片共模電感在電路中為什么會感量突然變化。 ? 結合多年的實踐經驗,我們可以將引起貼片共模電感量突變的原因歸納為以下幾點: 1. 溫度變化的影響:電感量通常與溫度變化有關
    的頭像 發表于 11-03 16:39 ?610次閱讀

    【GD32 MCU 入門教程】GD32 MCU 常見外設介紹(10)USART 模塊介紹

    通用同步異步收發器(USART) 提供了靈活方便的串行數據交換接口,數據幀可以通過全雙工或半雙工,同步或異步的方式進行傳輸。 USART提供了可編程的波特率發生器,能對UCLK(P
    的頭像 發表于 08-19 09:25 ?1852次閱讀
    【GD32 MCU 入門教程】GD32 MCU 常見外設介紹(10)<b class='flag-5'>USART</b> 模塊介紹

    NAS工具軟件大盤點:瞧瞧哪個被你遺漏了

    很多人聽說過NAS,也有很多人正在使用NAS。 NAS用戶通常需要安裝些軟件來擴展其功能,畢竟NAS的功能實在是太多了,光是部署與調試就要耗費大量的時間, 小寶集合了NAS相關實用
    的頭像 發表于 08-01 16:26 ?1994次閱讀

    創建Aurix項目失敗怎么解決?

    我嘗試創建新的 Aurix 項目,但點擊底部的 &quot;完成 &quot;后,沒有創建新文件,工作區仍然是空的。 我在論壇上搜索了這個問題,發現很多人遇到過這
    發表于 07-23 07:49

    【RISC-V信息速遞】反X86和ARM壟斷?很多人低估了RISC-V的顛覆性

    原文標題:【RISC-V信息速遞】反X86和ARM壟斷?很多人低估了RISC-V的顛覆性文章出處:【微信公眾號:RISCV國際人才培養認證中心】歡迎添加關注!文章轉載請注明出處。
    的頭像 發表于 06-08 08:36 ?347次閱讀
    【RISC-V信息速遞】反X86和ARM壟斷?<b class='flag-5'>很多人</b>低估了RISC-V的顛覆性

    如何挑選合適的HIS系統? 基于B/S架構,JAVA語言,springboot最新技術棧開發的整套云HIS系統源碼 HIS源碼

    最近有很多人在詢問,有沒有最優秀的HIS系統?在這里小編是沒辦法回答的。為什么呢?
    的頭像 發表于 05-27 16:03 ?1091次閱讀
    如何挑選<b class='flag-5'>一</b><b class='flag-5'>個</b>合適的HIS系統? 基于B/S架構,JAVA語言,springboot最新技術棧開發的整套云HIS系統源碼 HIS源碼

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品
    主站蜘蛛池模板: 亚洲人在线 | 美女国产一区 | av天天看 | 日本黄色录像 | 黄 色 成 年人网站 黄 色 成 年人在线 | 欧美视频小说 | video另类蛇交 | 久久美女精品国产精品亚洲 | 欧美巨大xxxx做受中文字幕 | 亚洲综合成人在线 | 黄频免费 | 日韩一级片免费在线观看 | 性欧美丨18一19 | 国内精品久久影视免费 | 国产一级特黄aa大片免费 | 天天天天添天天拍天天谢 | 天堂最新资源在线 | 免费在线黄色网址 | 免费在线观看黄色 | 色免费看 | 黄视频网站免费看 | 久久久午夜毛片免费 | 黄欧美| 六月丁香激情 | asian极品呦女爱爱 | 国产一区二区丁香婷婷 | 性videofree极品另类 | 四虎成人欧美精品在永久在线 | 久久亚洲综合中文字幕 | 成年人在线网站 | 特级一级毛片视频免费观看 | 国产成人a毛片 | 精品一区二区国语对白 | 荡女妇边被c边呻吟久久 | 77米奇影院 | 噜噜影院无毒不卡 | 成人丁香乱小说 | 在线免费你懂的 | 夜干夜夜 | 三级完整在线观看高清视频 | 国产精品视频色拍拍 |