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

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

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

3天內不再提示

串口發送的這幾種寫法,你用過幾種?

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-11-02 16:20 ? 次閱讀

一、STM32用USART發送字符串

void UART_Send_Message(u8 *Data)
{
  while(*Data!='?')
  {
      USART_SendData(USART1, *Data);
      while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);//讀取串口狀態
      Data++;
  }
}
 
void main(void)
{
  u8 str_buf[500];
  memset((char *)  str_buf, 0, sizeof(str_buf));
  UART_Send_Message(str_buf);
}

pYYBAGIB2JCANeDlAABaPG26uyU307.jpg
poYBAGIB2JKAAgOoAADcQH4C2Vw401.jpg

while(SET == USART_GetFlagStatus(USART1,USART_FLAG_RXNE));

含義是:當接收引腳有數據時,狀態寄存器的USART_FLAG_RXNE就會為1,此時USART_GetFlagStatus(USART1,USART_FLAG_RXNE)的返回值就為1(SET),若無數據則為RESET。

二、USART_FLAG_TXE和USART_FLAG_TC怎么用

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

特殊情況指的是:

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

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

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

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

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

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

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

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

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

常見寫法一

poYBAGIB2JSAYHr3AAALTrKKaP4183.png
pYYBAGIB2JWAEg8vAAAdFRfPn5I835.png

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

2、常見寫法二

pYYBAGIB2JeAQgDlAAAKWjsaLQQ970.png
poYBAGIB2JiAVDcbAAAc5wK0SCo307.png

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

3、常見寫法三

poYBAGIB2JmAOj7BAAALWgTxmTA496.png
pYYBAGIB2JqAEEQAAAAdF6NcPn4113.png

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

4、寫法四

pYYBAGIB2JuAP9qiAAAJIDOgFXs339.png
poYBAGIB2J2AGqmWAAAgHdBothY493.png

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

5、寫法五(正確寫法)

poYBAGIB2J6AVfi8AAAJtYBIDMc825.png
pYYBAGIB2J-AUs4EAAAdl4VsIbs308.png

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

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

審核編輯:湯梓紅

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

    關注

    2270

    文章

    10904

    瀏覽量

    356397
  • 串口
    +關注

    關注

    14

    文章

    1555

    瀏覽量

    76600
  • USART
    +關注

    關注

    1

    文章

    195

    瀏覽量

    30885
收藏 人收藏

    評論

    相關推薦

    柵漏電流噪聲有哪幾種模型?這幾種模型有什么局限性?

    常見的柵漏電流噪聲模型有哪幾種這幾種模型的特性是什么?有什么局限性?
    發表于 04-09 06:44

    柵漏電流噪聲有哪幾種模型?這幾種模型具有什么特性和局限性?

    柵漏電流噪聲特性是什么?柵漏電流噪聲有哪幾種模型?這幾種模型具有什么特性和局限性?
    發表于 04-14 06:53

    這幾種常見的薄膜電阻器都了解嗎?

    這幾種常見的薄膜電阻器都了解嗎?
    發表于 06-07 06:30

    常見的整流電路有哪幾種?如何去區分這幾種常見的整流電路?

    常見的整流電路有哪幾種?其特性是什么?如何去區分這幾種常見的整流電路?對整流電路中二極管的要求有哪些?
    發表于 07-11 07:19

    什么是串口通信?串口通信的基本方式有哪幾種

    什么是串口通信?串口通信的基本方式有哪幾種?異步數據的數據發送過程有哪些步驟?串口通信的數據格式是怎樣的?
    發表于 07-16 08:21

    如何使用bxCAN過濾器的這幾種工作模式呢

    bxCAN過濾器的工作模式有哪幾種?如何使用bxCAN過濾器的這幾種工作模式呢?對應的代碼示例是怎樣的?
    發表于 11-01 07:07

    串口接收/發送有哪幾種模式?

    串口接收/發送有哪幾種模式?
    發表于 12-09 08:02

    串口發送數據的方式有哪幾種

    串口發送數據的方式有哪幾種
    發表于 12-10 07:49

    STM32串口數據的接收與發送處理的幾種模式分別是哪些

    STM32串口發送數據為什么會丟失呢?怎樣去解決?STM32串口數據的接收與發送處理的幾種模式分別是哪些?
    發表于 12-10 07:37

    C語言的main函數有幾種寫法

    從學習C語言開始就一直寫個一個函數,那么知道它的標準寫法什么什么樣嗎? main函數,又稱主函數,是程序執行的起點,我們平時寫的main函數是什么樣呢? 1,是這樣? main(){} 2,還是
    的頭像 發表于 10-15 11:04 ?3325次閱讀

    串口發送這幾種寫法用過幾種

    它們分別表示數據在發送過程中,在兩個不同的階段中的完成情況。TXE 表示數據被從發送緩沖區中取走,轉移到的移位寄存器中,此時發送緩沖是空的,可以向其中補充新的數據了。而 TC 則表示最后放入
    發表于 02-08 15:16 ?2次下載
    <b class='flag-5'>串口</b><b class='flag-5'>發送</b>的<b class='flag-5'>這幾種</b><b class='flag-5'>寫法</b>,<b class='flag-5'>你</b><b class='flag-5'>用過</b><b class='flag-5'>幾種</b>?

    這幾種MOS管“擊穿”,了解嗎?

    MOSFET的擊穿有哪幾種?Source、Drain、Gate,場效應管的三極:源級S 漏級D 柵級G,(這里不講柵極GOX擊穿了啊,只針對漏極電壓擊穿)。
    發表于 02-09 11:42 ?16次下載
    <b class='flag-5'>這幾種</b>MOS管“擊穿”,<b class='flag-5'>你</b>了解嗎?

    LABVIEW打開調用子VI的幾種辦法

    總結了LABVIEW打開調用子VI的幾種辦法,程序寫法
    發表于 08-20 15:31 ?52次下載

    對HPM6750的這幾種調試方式展開介紹

    HPM6750支持jlink、dap和ft2232等多種調試方式,本文將對這幾種調試方式展開介紹,方便大家靈活選用不同的調試方式。
    的頭像 發表于 02-01 09:56 ?3782次閱讀

    串口屏的幾種安裝方式

    串口屏的幾種安裝方式
    的頭像 發表于 05-10 11:28 ?1576次閱讀
    主站蜘蛛池模板: 天堂网免费| 久久手机视频| 一级黄免费| 尤物黄色| 亚洲第一色在线| 四虎网址在线观看| 日本美女黄视频| 快播久久| 国产色婷婷| 午夜在线观看视频| 日本免费人成黄页在线观看视频 | 亚洲淫视频| 天天欲色| 日本免费黄网站| 九月丁香婷婷亚洲综合色| 成年毛片| 天天艹天天射| 成人午夜免费视频毛片| 亚洲夂夂婷婷色拍ww47| yy肉戏多纯黄的小说| 天堂在线www| 免费网站你懂得| 奇米影视四色首页手机在线| 狼色在线视频| 国模张文静啪啪私拍337p| 亚洲 欧洲 日韩| 嫩草影院www| aa级毛片| 国产香蕉视频在线观看| 亚洲色图综合在线| 香蕉视频一级| 久久婷婷久久一区二区三区| 91色爱| 久久丁香视频| 亚欧免费视频一区二区三区| 亚洲v视频| 蕾丝视频在线播放| 未成人禁止视频高清在线观看| www.夜夜骑| 真实国产伦子系| 美女又黄又免费的视频|