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

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

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

STM32串口發(fā)送字符串的幾種寫法

STM32嵌入式開發(fā) ? 來源:STM32嵌入式開發(fā) ? 2023-10-26 10:35 ? 次閱讀

STM32用USART發(fā)送字符串

wKgaomU50ZmAKw2bAAAfHxJ28As247.png

pYYBAGIB2JCANeDlAABaPG26uyU307.jpg

poYBAGIB2JKAAgOoAADcQH4C2Vw401.jpg

wKgZomU50ZmActA2AAAG7s8GorM412.png

代碼含義是:

當接收引腳有數(shù)據(jù)時,狀態(tài)寄存器的USART_FLAG_RXNE就會為1,此時USART_GetFlagStatus(USART1,USART_FLAG_RXNE)的返回值就為1(SET),若無數(shù)據(jù)則為RESET。

代碼常見寫法,及其接收數(shù)據(jù)效果

1

poYBAGIB2JSAYHr3AAALTrKKaP4183.png

pYYBAGIB2JWAEg8vAAAdFRfPn5I835.png

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

2

pYYBAGIB2JeAQgDlAAAKWjsaLQQ970.png

poYBAGIB2JiAVDcbAAAc5wK0SCo307.png

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

3

poYBAGIB2JmAOj7BAAALWgTxmTA496.png

pYYBAGIB2JqAEEQAAAAdF6NcPn4113.png

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

4

pYYBAGIB2JuAP9qiAAAJIDOgFXs339.png

poYBAGIB2J2AGqmWAAAgHdBothY493.png

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

5

poYBAGIB2J6AVfi8AAAJtYBIDMc825.png

pYYBAGIB2J-AUs4EAAAdl4VsIbs308.png

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

審核編輯:湯梓紅

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

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119201
  • STM32
    +關(guān)注

    關(guān)注

    2257

    文章

    10828

    瀏覽量

    352468
  • 串口
    +關(guān)注

    關(guān)注

    14

    文章

    1533

    瀏覽量

    75458
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    566

    瀏覽量

    20384

原文標題:STM32串口發(fā)送字符串的幾種寫法

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    STM32串口發(fā)送數(shù)據(jù)和接收數(shù)據(jù)方式總結(jié)

    STM32串口發(fā)送數(shù)據(jù)和接收數(shù)據(jù)方式總結(jié)
    的頭像 發(fā)表于 09-19 09:14 ?6600次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>發(fā)送</b>數(shù)據(jù)和接收數(shù)據(jù)方式總結(jié)

    STM32串口發(fā)送字符串出現(xiàn)亂碼如何解決?

    STM32串口發(fā)送字符串出現(xiàn)亂碼如何解決?
    發(fā)表于 12-03 07:15

    怎樣將STM32串口1的字符串字符發(fā)送出來呢

    怎樣將STM32串口1的字符串字符發(fā)送出來呢?其程序該如何去實現(xiàn)呢?
    發(fā)表于 12-08 06:27

    stm32串口發(fā)送字符串,第一個字符丟失如何解決?

    stm32串口發(fā)送字符串,第一個字符丟失如何解決?
    發(fā)表于 12-09 07:10

    STM32串口發(fā)送字符串出現(xiàn)亂碼怎么解決?

    STM32串口發(fā)送字符串出現(xiàn)亂碼怎么解決?
    發(fā)表于 02-18 06:58

    請教visa如何用同一串口同時接收和發(fā)送字符串

    現(xiàn)在需要實現(xiàn)同一串口同時接收和發(fā)送字符串的功能,如圖1所示,發(fā)送以CFG開頭的藍色字符串給控制板,控制板會返回以ACKRD開頭的綠色
    發(fā)表于 07-24 11:03

    如何利用STM32單片機串口發(fā)送字符串

    最近由于要調(diào)試一個SMS發(fā)送短信的模塊,該模塊需要發(fā)送一系列AT指令,且需要字符串發(fā)送,但是STM32官方給的usart.c中并沒有直接
    發(fā)表于 12-10 16:01 ?1.6w次閱讀

    基于STM32單片機發(fā)送字符串的函數(shù)

    最近由于要調(diào)試一個SMS發(fā)送短信的模塊,該模塊需要發(fā)送一系列AT指令,且需要字符串發(fā)送,但是STM32官方給的usart.c中并沒有直接
    發(fā)表于 01-04 15:05 ?4738次閱讀

    利用STM32單片機串口發(fā)送字符串

    最近由于要調(diào)試一個SMS發(fā)送短信的模塊,該模塊需要發(fā)送一系列AT指令,且需要字符串發(fā)送,但是STM32官方給的usart.c中并沒有直接
    發(fā)表于 11-19 10:36 ?13次下載
    利用<b class='flag-5'>STM32</b>單片機<b class='flag-5'>串口</b><b class='flag-5'>發(fā)送</b><b class='flag-5'>字符串</b>

    STM32踩坑:STM32串口發(fā)送亂碼問題

    STM32串口發(fā)送亂碼問題小編是一個嵌入式初學(xué)者,才學(xué)沒多久,將近兩個月的樣子,在學(xué)習(xí)過程中遇到了一些問題,在這里給大家分享一下解決方案。今天要分享的問題是 STM32
    發(fā)表于 12-24 18:40 ?10次下載
    <b class='flag-5'>STM32</b>踩坑:<b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>發(fā)送</b>亂碼問題

    5. STM32——串口發(fā)送字符、字符串 + printf 的重定向

    STM32——串口發(fā)送字符、字符串 + printf 的重定向基本框架1. 配置時鐘:配置GPIO時鐘、窗口時鐘、引腳復(fù)用時鐘2. 配置GP
    發(fā)表于 12-24 18:53 ?11次下載
    5. <b class='flag-5'>STM32</b>——<b class='flag-5'>串口</b><b class='flag-5'>發(fā)送</b><b class='flag-5'>字符</b>、<b class='flag-5'>字符串</b> + printf 的重定向

    STM32串口的介紹與使用(原理、結(jié)構(gòu)體、發(fā)送字符串、printf函數(shù)重定向)

    串口相關(guān)知識1.定義2.通信概念3.USART簡介串口的結(jié)構(gòu)體串口發(fā)送字符STM32
    發(fā)表于 12-24 19:08 ?19次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b>的介紹與使用(原理、結(jié)構(gòu)體、<b class='flag-5'>發(fā)送</b><b class='flag-5'>字符串</b>、printf函數(shù)重定向)

    嵌入式單片機基礎(chǔ)篇(二十五)之stm32F103串口接收發(fā)送固定大小字符串程序

    stm32F103串口接收發(fā)送固定大小字符串程序#include "stm32f10x.h"#include "string.h"#incl
    發(fā)表于 12-27 19:26 ?22次下載
    嵌入式單片機基礎(chǔ)篇(二十五)之<b class='flag-5'>stm32</b>F103<b class='flag-5'>串口</b>接收<b class='flag-5'>發(fā)送</b>固定大小<b class='flag-5'>字符串</b>程序

    解決STM32串口丟失第一個字符

    在使用STM32串口時可能會發(fā)現(xiàn)一個問題就是發(fā)送字符串時第一個字符缺失情況。解決辦法在發(fā)送
    發(fā)表于 12-27 19:28 ?10次下載
    解決<b class='flag-5'>STM32</b><b class='flag-5'>串口</b>丟失第一個<b class='flag-5'>字符</b>

    strtok拆分字符串

    大家好,我是驚覺,今天聊聊字符串。字符串的使用場景非常之多,人機交互和雙機通信都會用到。比如:通過串口向單片機發(fā)送指令,以執(zhí)行操作或配置參數(shù)。單片機讀取傳感器數(shù)據(jù),數(shù)據(jù)格式是
    發(fā)表于 01-13 15:46 ?8次下載
    strtok拆分<b class='flag-5'>字符串</b>