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ā)送和接收

麥辣雞腿堡 ? 來(lái)源:CSDN博客 ? 作者:藕粉- ? 2023-11-10 16:04 ? 次閱讀

USART是STM32內(nèi)部集成的硬件外設(shè),可以根據(jù)數(shù)據(jù)寄存器的一個(gè)字節(jié)數(shù)據(jù)自動(dòng)生成數(shù)據(jù)幀時(shí)序,從TX引腳發(fā)送出去,也可以自動(dòng)接收RX引腳的數(shù)據(jù)幀時(shí)序,拼接成一個(gè)字節(jié)數(shù)據(jù),存放在數(shù)據(jù)寄存器里。

當(dāng)配置好USART的電路之后,直接讀取數(shù)據(jù)寄存器,就可以自動(dòng)發(fā)送數(shù)據(jù)和接收數(shù)據(jù)了。在發(fā)送和接收的模塊有4個(gè)重要的寄存器

發(fā)送數(shù)據(jù)寄存器TDR

發(fā)送移位寄存器,把一個(gè)字節(jié)的數(shù)據(jù)一位一位的移出去

接收數(shù)據(jù)寄存器RDR

接收移位寄存器,把一個(gè)字節(jié)的數(shù)據(jù)

下方為串口的發(fā)送和接收?qǐng)D解:

圖片

串口發(fā)送

在配置串口的各個(gè)參數(shù)時(shí),可以選擇發(fā)送數(shù)據(jù)幀的數(shù)據(jù)位的大小,可選8位或9位。

串口發(fā)送數(shù)據(jù)實(shí)際上就是對(duì)發(fā)送數(shù)據(jù)寄存器TDR進(jìn)行寫操作。

  1. 當(dāng)串口發(fā)送數(shù)據(jù)時(shí),會(huì)檢測(cè)發(fā)送移位寄存器是不是有數(shù)據(jù)正在移位,如果沒(méi)有移位,那么這個(gè)數(shù)據(jù)就會(huì)立刻轉(zhuǎn)移到發(fā)送移位寄存器里。準(zhǔn)備發(fā)送。

2.當(dāng)數(shù)據(jù)移動(dòng)到移位寄存器時(shí),會(huì)產(chǎn)生一個(gè)TXE發(fā)送寄存器空標(biāo)志位,該位描述如下。當(dāng)TXE被置1,那么就可以在TDR寫入下一個(gè)數(shù)據(jù)了。即發(fā)送下一個(gè)數(shù)據(jù)。

圖片

  1. 發(fā)送移位寄存器在發(fā)送器控制的控制下,向右移位,一位一位的把數(shù)據(jù)傳輸?shù)絋X引腳。

圖片

  1. 數(shù)據(jù)移位完成后,新的數(shù)據(jù)就會(huì)再次從TDR轉(zhuǎn)移到發(fā)送移位寄存器里來(lái),依次重復(fù)1-3的過(guò)程。通過(guò)讀取TXE標(biāo)志位來(lái)判斷是否發(fā)送下一個(gè)數(shù)據(jù)。

串口接收

數(shù)據(jù)從RX引腳通向接收移位寄存器,在接收控制的控制下,一位一位的讀取RX的電平,把第一位放在最高位,然后右移,移位八次之后就可以接收一個(gè)字節(jié)了。

當(dāng)一個(gè)字節(jié)數(shù)據(jù)移位完成之后,這一個(gè)字節(jié)的數(shù)據(jù)就會(huì)整體的移到接收數(shù)據(jù)寄存器RDR里來(lái)。

在轉(zhuǎn)移時(shí)會(huì)置RXNE接收標(biāo)志位,即RDR寄存器非空,下方為該位的描述。當(dāng)被置1后,就說(shuō)明數(shù)據(jù)可以被讀出。

圖片

下圖即為串口接收的工作流程

圖片

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

    關(guān)注

    31

    文章

    5294

    瀏覽量

    119814
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6808

    瀏覽量

    88743
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354289
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1607

    瀏覽量

    55381
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    stm32串口接收串口發(fā)送的實(shí)現(xiàn)過(guò)程是怎樣的

    嵌入式的底層是如何實(shí)現(xiàn)的?stm32串口接收串口發(fā)送的實(shí)現(xiàn)過(guò)程是怎樣的?
    發(fā)表于 12-07 07:06

    基于CubeMX HAL庫(kù)的STM32串口發(fā)送接收配置過(guò)程分享

    基于CubeMX HAL庫(kù)的STM32串口發(fā)送接收配置過(guò)程分享
    發(fā)表于 12-10 06:43

    STM32串口是如何去實(shí)現(xiàn)數(shù)據(jù)發(fā)送接收

    什么是串口復(fù)位呢?STM32串口是如何去實(shí)現(xiàn)數(shù)據(jù)發(fā)送接收的?
    發(fā)表于 12-10 06:16

    STM32串口發(fā)送數(shù)據(jù)與接收數(shù)據(jù)淺析

    STM32串口發(fā)送數(shù)據(jù)最直接的方式是什么呢?STM32串口接收數(shù)據(jù)最直接的方式是什么呢?
    發(fā)表于 02-18 06:09

    STM32串口接收陀螺儀數(shù)據(jù)-2016-04-15

    stm32f103串口接收MPU6050數(shù)據(jù)
    發(fā)表于 05-23 10:24 ?21次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>接收</b>陀螺儀數(shù)據(jù)-2016-04-15

    STM32CUBEMX配置教程(八)STM32串口輪詢發(fā)送中斷接收+重定義+優(yōu)化

    STM32CUBEMX配置教程(八)STM32串口輪詢收發(fā)+重定義基于STM32H743VI使用STM32CUBEMX兩年了,始終覺(jué)得這個(gè)工
    發(fā)表于 11-19 13:36 ?11次下載
    <b class='flag-5'>STM32</b>CUBEMX配置教程(八)<b class='flag-5'>STM32</b><b class='flag-5'>串口</b>輪詢<b class='flag-5'>發(fā)送</b>中斷<b class='flag-5'>接收</b>+重定義+優(yōu)化

    STM32串口通訊

    STM32串口通訊USART串口通信實(shí)踐USART串口通信實(shí)踐1、實(shí)驗(yàn)環(huán)境參考資料 野火官方的 《零死角玩轉(zhuǎn)STM32—F103指南者
    發(fā)表于 12-06 20:21 ?13次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b>通訊

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

    STM32串口發(fā)送亂碼問(wèn)題小編是一個(gè)嵌入式初學(xué)者,才學(xué)沒(méi)多久,將近兩個(gè)月的樣子,在學(xué)習(xí)過(guò)程中遇到了一些問(wèn)題,在這里給大家分享一下解決方案。今天要分享的問(wèn)題是 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>亂碼問(wèn)題

    stm32串口

    DMA發(fā)送緩存區(qū)bsp_usart.cbsp_usart.hisr.c基于stm32f103zet6串口發(fā)送使用DMA發(fā)送大致說(shuō)明USART
    發(fā)表于 12-24 18:55 ?20次下載
    <b class='flag-5'>stm32</b><b class='flag-5'>串口</b>

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

    之前寫了篇關(guān)于ESP8266使用AT指令進(jìn)行互相通訊的實(shí)驗(yàn),在寫STM32串口接發(fā)數(shù)據(jù)的程序中,覺(jué)得有必要將之前學(xué)的有關(guān)于串口方面的使用經(jīng)歷加以總結(jié)。串口
    發(fā)表于 12-24 18:59 ?18次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>發(fā)送</b>數(shù)據(jù)和<b class='flag-5'>接收</b>數(shù)據(jù)方式總結(jié)(轉(zhuǎn))

    21電賽02 stm32串口發(fā)送接收

    stm32串口接收具體協(xié)議看之前的01//頭文件部分typedef struct{ long int x_cm; long int y_cm; int openmv;}OPMV_info
    發(fā)表于 12-24 19:16 ?0次下載
    21電賽02 <b class='flag-5'>stm32</b><b class='flag-5'>串口</b><b class='flag-5'>發(fā)送</b><b class='flag-5'>接收</b>

    (二)STM32串口總結(jié)(庫(kù)函數(shù)版)

    一.STM32F103有兩個(gè)串口圖中 TXD/RXD 是相對(duì) CH340G 來(lái)說(shuō)的,也就是 USB 串口發(fā)送接收引腳。而 USART1_
    發(fā)表于 01-14 13:56 ?0次下載
    (二)<b class='flag-5'>STM32</b><b class='flag-5'>串口</b>總結(jié)(庫(kù)函數(shù)版)

    一個(gè)嚴(yán)謹(jǐn)?shù)?b class='flag-5'>STM32串口DMA發(fā)送&amp;接收(1.5Mbps波特率)機(jī)制

    一個(gè)嚴(yán)謹(jǐn)?shù)?b class='flag-5'>STM32串口DMA發(fā)送&接收(1.5Mbps波特率)機(jī)制
    的頭像 發(fā)表于 09-18 10:58 ?2092次閱讀
    一個(gè)嚴(yán)謹(jǐn)?shù)?b class='flag-5'>STM32</b><b class='flag-5'>串口</b>DMA<b class='flag-5'>發(fā)送</b>&amp;<b class='flag-5'>接收</b>(1.5Mbps波特率)機(jī)制

    STM32串口中斷接收不定長(zhǎng)報(bào)文介紹

    本項(xiàng)目中,需要使用STM32的USART6串口與FPGA板(下位機(jī))通信,需要發(fā)送接收數(shù)據(jù),有報(bào)文應(yīng)答機(jī)制。
    的頭像 發(fā)表于 10-26 11:01 ?979次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b>中斷<b class='flag-5'>接收</b>不定長(zhǎng)報(bào)文介紹