日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

關(guān)于 USART很多人都容易忽視的一個問題

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-24 11:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Ⅰ、寫在前面

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

本文講述在項目開發(fā)中,或在學(xué)習(xí)中經(jīng)常遇到USART發(fā)送字符串,對方?jīng)]有接收完成(最后一兩字節(jié)),也就是最后字節(jié)數(shù)據(jù)丟失了。具體可以看下面章節(jié)實驗。

關(guān)于本文的更多詳情請往下看。

Ⅱ、實例工程

為了方便大家學(xué)習(xí),提供實驗源代碼工程給大家參考。

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

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

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

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

Ⅲ、本文要點

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

特殊情況指的是:

1.調(diào)用發(fā)送字符串函數(shù)“發(fā)送完”本機立即掉電;

2.調(diào)用發(fā)送字符串函數(shù)“發(fā)送完”從機立即掉電;

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

3.調(diào)用發(fā)送字符串函數(shù)“發(fā)送完”立刻進入待機或停機;

其實本文主要說的是兩個標(biāo)志位:USART_FLAG_TXE 和 USART_FLAG_TC.

USART_FLAG_TXE發(fā)送緩沖區(qū)空標(biāo)志:說明可以往數(shù)據(jù)寄存器寫入數(shù)據(jù)了,但并不代碼數(shù)據(jù)發(fā)送完成了。

USART_FLAG_TC發(fā)送完成標(biāo)志:這個才是代表USART在緩沖區(qū)的數(shù)據(jù)發(fā)送完成了,即從機接收到了數(shù)據(jù)。

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

下面講述在不同代碼寫法下,得到不同實驗效果【調(diào)試助手接收數(shù)據(jù)】:

1.常見寫法一

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

2.常見寫法二

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

3.常見寫法三


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

4.寫法四


這種寫法按理說可以實現(xiàn)功能,但實際多次試驗結(jié)果確實第一字節(jié)數(shù)據(jù)丟失了。

5.寫法五(正確寫法)


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

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

Ⅳ、說明

以上幾點內(nèi)容比較容易出現(xiàn)問題,希望對你項目開發(fā)起到幫助作用。

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

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

    關(guān)注

    96

    文章

    2953

    瀏覽量

    70684
  • USAR
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    8586
  • main
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    深度解析:電感為何發(fā)燙、嘯叫?

    電感發(fā)燙、嘯叫”問題的根源往往不在銅損,而在被很多人忽視的磁芯損耗上。今天我們就用三分鐘,透過現(xiàn)象看本質(zhì),講透這個決定電源成敗的核心問題。
    的頭像 發(fā)表于 04-27 10:14 ?69次閱讀
    深度解析:電感為何發(fā)燙、嘯叫?

    UPS電源是串聯(lián)還是并聯(lián)?很多老電工搞錯了,文帶你徹底搞懂

    困惑:UPS電源到底是該串聯(lián),還是該并聯(lián)?很多人憑字面意思理解,以為像電池樣簡單連接就行,但實際上,UPS領(lǐng)域的“串聯(lián)”與“并聯(lián)”有著截然不同的技術(shù)內(nèi)涵和應(yīng)用場
    的頭像 發(fā)表于 03-16 13:31 ?424次閱讀
    UPS電源是串聯(lián)還是并聯(lián)?<b class='flag-5'>很多</b>老電工<b class='flag-5'>都</b>搞錯了,<b class='flag-5'>一</b>文帶你徹底搞懂

    電機容易忽視的有哪幾個問題?

    在工業(yè)生產(chǎn)和日常生活中,電機作為核心動力設(shè)備廣泛應(yīng)用于各類機械系統(tǒng)中。然而,許多用戶在使用過程中往往忽視些關(guān)鍵問題,導(dǎo)致電機壽命縮短、效率下降甚至引發(fā)安全隱患。
    的頭像 發(fā)表于 03-13 16:56 ?620次閱讀

    地面5G與太空星鏈:關(guān)于“密度”與“邊界”的對決

    堅稱“5G才是未來”,有人斷言“星鏈將取代地面網(wǎng)絡(luò)”。事實上,這場爭論的背后,隱藏著忽視的核心問題 被誤解的“對手”:兩種不同的技術(shù)路徑 很多人習(xí)慣性地將5G和星鏈放在對立面上,
    的頭像 發(fā)表于 03-12 12:08 ?280次閱讀

    編寫生產(chǎn)級的Service配置文件

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

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

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

    國產(chǎn)MCU工具6月內(nèi)給原廠添加200+的經(jīng)驗分析

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

    國產(chǎn) MCU 原廠支持 200+ 型號的工程實踐記錄》

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

    ESP32和STM32哪個更容易學(xué)?

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

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

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

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

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

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

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

    應(yīng)急電源就是備用電源?很多人搞錯了,區(qū)別大到讓你驚呆!

    電源
    上海優(yōu)比施電子科技有限公司
    發(fā)布于 :2025年09月12日 11:13:02

    作為電力系統(tǒng)中的核心設(shè)備,很多人都不知道它

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

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

    個人安全問題在日常生活中常常容易忽視,尤其是在獨處、探險或是身處偏遠地帶時,很多人可能未能充分認(rèn)識到潛在的風(fēng)險。例如,遇到迷路、自然災(zāi)害、意外事故等突發(fā)狀況時,我們該如何求救?
    的頭像 發(fā)表于 05-22 13:45 ?1138次閱讀
    安富利推出個人安全追蹤器解決方案
    三亚市| 天峻县| 安宁市| 沁源县| 鄂尔多斯市| 巴里| 石棉县| 紫云| 兴海县| 乌鲁木齐县| 方山县| 独山县| 太仆寺旗| 屏山县| 高邑县| 平凉市| 襄垣县| 昌都县| 北辰区| 沛县| 万宁市| 乡宁县| 郑州市| 津市市| 东明县| 枣庄市| 壤塘县| 延长县| 册亨县| 广水市| 胶南市| 法库县| 高邮市| 封丘县| 淮南市| 东城区| 渭南市| 滨州市| 东光县| 乐陵市| 武川县|