衡阳派盒市场营销有限公司

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

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

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

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

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

Ⅰ、寫在前面

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

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

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

Ⅱ、實(shí)例工程

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

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

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

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

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

Ⅲ、本文要點(diǎn)

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

特殊情況指的是:

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

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

【上面兩種主要用于芯片電源控制的項(xiàng)目中】

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

其實(shí)本文主要說的是兩個(gè)標(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)志:這個(gè)才是代表USART在緩沖區(qū)的數(shù)據(jù)發(fā)送完成了,即從機(jī)接收到了數(shù)據(jù)。

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

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

1.常見寫法一

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

2.常見寫法二

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

3.常見寫法三


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

4.寫法四


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

5.寫法五(正確寫法)


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

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

Ⅳ、說明

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

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

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

    關(guān)注

    96

    文章

    2946

    瀏覽量

    66955
  • USAR
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    8401
  • main
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    6203
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

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

    的參數(shù)。本篇我們來探討個(gè)很多人關(guān)心的問題——貼片共模電感在電路中為什么會感量突然變化。 ? 結(jié)合多年的實(shí)踐經(jīng)驗(yàn),我們可以將引起貼片共模電感量突變的原因歸納為以下幾點(diǎn): 1. 溫度變化的影響:電感量通常與溫度變化有關(guān)
    的頭像 發(fā)表于 11-03 16:39 ?346次閱讀

    NAS工具軟件大盤點(diǎn):瞧瞧哪個(gè)被你遺漏了

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

    創(chuàng)建Aurix項(xiàng)目失敗怎么解決?

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

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

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

    如何挑選個(gè)合適的HIS系統(tǒng)? 基于B/S架構(gòu),JAVA語言,springboot最新技術(shù)棧開發(fā)的整套云HIS系統(tǒng)源碼 HIS源碼

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

    USART上對應(yīng)RTS的GPIO引腳不需要定義嗎?

    大家知道USART中RX和TX這兩個(gè)引腳的功能,它們是USART串行通信最常見和必不可少的兩個(gè)引腳。但是
    發(fā)表于 04-25 08:05

    STM32抗干擾能力如何?

    ,打算換這個(gè)芯片。但是有很多人說STM32抗干擾能力很差,在復(fù)雜電池環(huán)境下容易死機(jī)!各位有沒有用它做個(gè)類似的產(chǎn)品啊 ?效果如何 ?
    發(fā)表于 04-25 06:15

    李彥宏說開源模型會越來越落后,為什么很多人不認(rèn)同?

    上周,百度董事長兼CEO李彥宏對于開源大模型的番言論引發(fā)了爭議。
    的頭像 發(fā)表于 04-24 09:37 ?583次閱讀
    李彥宏說開源模型會越來越落后,為什么<b class='flag-5'>很多人</b>不認(rèn)同?

    串口發(fā)送函數(shù)HAL_UART_Transmit( huart1, transmit,len, timeout) 里的timeout般設(shè)置多少比較合適?

    字節(jié)的等待超時(shí)時(shí)間,那么以9600波特率為例,發(fā)送1個(gè)字節(jié)1ms都不需要,那這個(gè)值應(yīng)該設(shè)置很小的值比如10就夠了,但為什么網(wǎng)上很多人的例程里都是設(shè)置了1000甚至更大?
    發(fā)表于 04-11 07:22

    體式貼片電感封裝尺寸是不是

    替代的問題。其中,關(guān)于不同不同品牌封裝尺寸是否樣的話題,一直都很多人在討論。 不同品牌的體式貼片電感,雖然在功能上差不多,但它們的封裝尺寸卻不相同。比如,某品牌的
    的頭像 發(fā)表于 04-03 22:45 ?393次閱讀

    關(guān)于STM32 DMAMUX模塊具體的應(yīng)用示例代碼

    有人通過公眾號微信留言,詢問是否有關(guān)于STM32 DMAMUX模塊具體的應(yīng)用示例代碼。同時(shí),個(gè)人也發(fā)現(xiàn),雖然STM32片內(nèi)的DMAMUX不是什么新模塊,似乎還是很多人并不太熟悉。這里借機(jī)聊聊這方面的內(nèi)容,重點(diǎn)演示相關(guān)功能的實(shí)現(xiàn),以供參考。
    的頭像 發(fā)表于 03-25 09:15 ?2570次閱讀
    <b class='flag-5'>關(guān)于</b>STM32 DMAMUX模塊具體的應(yīng)用示例代碼

    電動車火災(zāi)頻發(fā),如何預(yù)防?這點(diǎn)很多人忽略了

    電動車火災(zāi)頻發(fā),選擇正規(guī)廠家生產(chǎn)的電動車與電池是預(yù)防關(guān)鍵。艾邁斯電子提供的第四代智能設(shè)備動力連接器LC系列,高載流低溫升安全無憂,采用T2紫銅鍍銀導(dǎo)體和PBT塑殼材質(zhì),通過多項(xiàng)測試標(biāo)準(zhǔn),有效降低火災(zāi)風(fēng)險(xiǎn),為電動車充電安全提供有力保障。
    的頭像 發(fā)表于 02-29 13:41 ?445次閱讀
    電動車火災(zāi)頻發(fā),如何預(yù)防?這<b class='flag-5'>一</b>點(diǎn)<b class='flag-5'>很多人</b><b class='flag-5'>都</b>忽略了
    机器百家乐作弊| 大发888官方下| 金道博彩| 南宁百家乐官网的玩法技巧和规则| 百家乐投注技巧公式| 万豪国际娱乐网| 网上百家乐官网真坑人| 百家乐官网微笑玩| 富田太阳城二期| 赌博百家乐官网弱点| 百家乐决战推筒子| 皇冠网平台| 百家乐官网平玩法几副牌| 大发888真钱游戏| 百家乐官网桌手机套| 模拟百家乐的玩法技巧和规则 | 日博| 百家乐官网庄家优势| 怎么赌百家乐能赢| 长乐市| 真人百家乐怎么对冲| 百家乐代理| 做生意店铺缺西北角| 新世纪娱乐城官方网站| 多台百家乐官网的玩法技巧和规则| 网上百家乐赌博经历| 单机百家乐官网在线小游戏| 百家乐国际娱乐场| 百家乐官网庄闲| 豪门百家乐的玩法技巧和规则| 百家乐官网有真假宝单吗| 百家乐最新产品| 大发888 m摩卡游戏| 沙龙百家乐官网娱乐场| 大发888捕鱼| 迷你百家乐官网的玩法技巧和规则| 大发888在线娱乐二十一点| 华硕百家乐官网的玩法技巧和规则 | 美女百家乐官网的玩法技巧和规则| 大发888yulecheng| 华硕百家乐官网的玩法技巧和规则|