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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(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

代碼含義是:

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

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

1

poYBAGIB2JSAYHr3AAALTrKKaP4183.png

pYYBAGIB2JWAEg8vAAAdFRfPn5I835.png

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

2

pYYBAGIB2JeAQgDlAAAKWjsaLQQ970.png

poYBAGIB2JiAVDcbAAAc5wK0SCo307.png

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

3

poYBAGIB2JmAOj7BAAALWgTxmTA496.png

pYYBAGIB2JqAEEQAAAAdF6NcPn4113.png

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

4

pYYBAGIB2JuAP9qiAAAJIDOgFXs339.png

poYBAGIB2J2AGqmWAAAgHdBothY493.png

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

5

poYBAGIB2J6AVfi8AAAJtYBIDMc825.png

pYYBAGIB2J-AUs4EAAAdl4VsIbs308.png

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

審核編輯:湯梓紅

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

    關(guān)注

    31

    文章

    5268

    瀏覽量

    119646
  • STM32
    +關(guān)注

    關(guān)注

    2263

    文章

    10846

    瀏覽量

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

    關(guān)注

    14

    文章

    1535

    瀏覽量

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

    關(guān)注

    1

    文章

    567

    瀏覽量

    20432

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    STM32串口發(fā)送數(shù)據(jù)和接收數(shù)據(jù)方式總結(jié)
    的頭像 發(fā)表于 09-19 09:14 ?6892次閱讀
    <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ā)送出來呢?其程序該如何去實(shí)現(xiàn)呢?
    發(fā)表于 12-08 06:27

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

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

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

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

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

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

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

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

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

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

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

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

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

    STM32串口發(fā)送亂碼問題小編是一個(gè)嵌入式初學(xué)者,才學(xué)沒多久,將近兩個(gè)月的樣子,在學(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. 配置時(shí)鐘:配置GPIO時(shí)鐘、窗口時(shí)鐘、引腳復(fù)用時(shí)鐘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)知識(shí)1.定義2.通信概念3.USART簡(jiǎn)介串口的結(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ù)重定向)

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

    stm32F103串口接收發(fā)送固定大小字符串程序#include "stm32f10x.h"#include "string.h"#incl
    發(fā)表于 12-27 19:26 ?22次下載
    嵌入式單片機(jī)基礎(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串口丟失第一個(gè)字符

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

    strtok拆分字符串

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