国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取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

    文章

    2953

    瀏覽量

    70305
  • USAR
    +關注

    關注

    0

    文章

    4

    瀏覽量

    8561
  • main
    +關注

    關注

    0

    文章

    38

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    編寫生產級的Service配置文件

    systemctl start xxx 敲了無數遍,但真要從零寫 Service 文件丟到生產環境跑,很多人就開始心虛了。網上抄段配置,Type=simple 還是 forkin
    的頭像 發表于 02-25 14:24 ?152次閱讀

    別再忽視充電芯片了!HT4056H的這些保護功能真的很重要

    很多人在設計便攜設備時,往往把注意力放在主控芯片上,卻忽視了充電管理的重要性。HT4056H除了基本的恒流恒壓充電功能,還內置了欠壓閉鎖、電池反接保護、溫度監控等多重安全機制。TDFN2×2封裝讓它能輕松塞進各種小設備里,40V耐壓更是給足了安全余量。做產品的朋友,充電安
    的頭像 發表于 02-25 11:42 ?223次閱讀
    別再<b class='flag-5'>忽視</b>充電芯片了!HT4056H的這些保護功能真的很重要

    國產MCU工具6月內給原廠添加200+的經驗分析

    萬能模板”解決所有型號。 模板必須有邊界, 而不是靠配置無限擴展。 版本不是負擔,而是保護 很多人抗拒“模板版本變多”, 但實際工程中發現: 版本清晰 反而更容易維護 老型號更
    發表于 02-06 09:22

    國產 MCU 原廠支持 200+ 型號的工程實踐記錄》

    萬能模板”解決所有型號。 模板必須有邊界, 而不是靠配置無限擴展。 版本不是負擔,而是保護 很多人抗拒“模板版本變多”, 但實際工程中發現: 版本清晰 反而更容易維護 老型號更
    發表于 02-06 09:20

    ESP32和STM32哪個更容易學?

    很多人會問,ESP32和STM32到底哪個更容易學?其實這個問題有點像問自行車和汽車哪個更好開——取決于你想去哪兒,以及你享受的是過程還是結果。 ESP32更像是為你搭好舞臺的智
    的頭像 發表于 01-15 15:53 ?245次閱讀
    ESP32和STM32哪個更<b class='flag-5'>容易</b>學?

    電池包氣密性檢測設備使用誤區,90%的人踩過-岳信儀器

    在電池包生產過程中,氣密性檢測設備是保障電池包質量的關鍵工具。然而,很多人在使用這些設備時,常常陷入些誤區,影響檢測結果的準確性和設備的使用壽命。以下是些常見的使用誤區。(1)忽視
    的頭像 發表于 11-28 10:41 ?274次閱讀
    電池包氣密性檢測設備使用誤區,90%的人<b class='flag-5'>都</b>踩過-岳信儀器

    遠程IO不就是分布式IO?其實很多人理解錯了

    、引言 在工業自動化和控制系統中,分布式io和遠程io作為兩種常見的IO技術,各自具有獨特的特點和優勢,以下對遠程io和分布式io進行詳細比較,以明確它們之間的區別。 二、位置范圍與連接方式 1
    的頭像 發表于 09-28 11:06 ?722次閱讀
    遠程IO不就是分布式IO?其實<b class='flag-5'>很多人</b><b class='flag-5'>都</b>理解錯了

    LVGL近期很多人問,那它和Qt哪個好?

    最近拜訪做工業控制、智能家居的客戶時,常被問到同一個問題:嵌入式產品,GUI選LVGL還是Qt? 其實工具選擇沒有絕對的“好”與“壞”,但選對適配場景的GUI圖形用戶界面工具,能直接讓產品開發效率
    的頭像 發表于 09-23 15:54 ?1452次閱讀
    LVGL近期<b class='flag-5'>很多人</b>問,那它和Qt哪個好?

    應急電源就是備用電源?很多人搞錯了,區別大到讓你驚呆!

    電源
    上海優比施電子科技有限公司
    發布于 :2025年09月12日 11:13:02

    作為電力系統中的核心設備,很多人都不知道它

    ,為讀者呈現這關鍵電力設備的全景圖。 ### 、技術演進:從電磁感應到智能化管控 1885年匈牙利工程師代里等三人發明變壓器原型機時,或許未曾預料到這個基于電磁感應原理的設備會成為工業文明的基石。現代變壓器通過初級
    的頭像 發表于 06-25 10:01 ?756次閱讀

    安富利推出個人安全追蹤器解決方案

    個人安全問題在日常生活中常常容易忽視,尤其是在獨處、探險或是身處偏遠地帶時,很多人可能未能充分認識到潛在的風險。例如,遇到迷路、自然災害、意外事故等突發狀況時,我們該如何求救?
    的頭像 發表于 05-22 13:45 ?979次閱讀
    安富利推出個人安全追蹤器解決方案

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

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

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

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

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

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

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

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