吴忠躺衫网络科技有限公司

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

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

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

STM32的串口通信原理介紹

奈因PCB電路板設計 ? 來源:STM32嵌入式開發(fā) ? 作者:STM32嵌入式開發(fā) ? 2021-08-26 09:23 ? 次閱讀

介紹串口通信

按照數(shù)據(jù)傳送方向分類

單工:數(shù)據(jù)傳輸只支持數(shù)據(jù)在一個方向上傳輸

半雙工:允許數(shù)據(jù)在兩個方向上傳輸。但是,在某一時刻,只允許數(shù)據(jù)在一個方向上傳輸,它實際上是一種切換方向的單工通信;它不需要獨立的接收端和發(fā)送端,兩者可以合并一起使用一個端口

全雙工:允許數(shù)據(jù)同時在兩個方向上傳輸。因此,全雙工通信是兩個單工通信方式的結(jié)合,需要獨立的接收端和發(fā)送端

按照通信方式分類

同步通信:帶時鐘同步信號傳輸。比如:SPI,IIC通信接口

異步通信:不帶時鐘同步信號。比如:UART(通用異步收發(fā)器),單總線

在同步通訊中,收發(fā)設備上方會使用一根信號線傳輸信號,在時鐘信號的驅(qū)動下雙方進行協(xié)調(diào),同步數(shù)據(jù)。例如,通訊中通常雙方會統(tǒng)一規(guī)定在時鐘信號的上升沿或者下降沿對數(shù)據(jù)線進行采樣。

在異步通訊中不使用時鐘信號進行數(shù)據(jù)同步,它們直接在數(shù)據(jù)信號中穿插一些用于同步的信號位,或者將主題數(shù)據(jù)進行打包,以數(shù)據(jù)幀的格式傳輸數(shù)據(jù)。通訊中還需要雙方規(guī)約好數(shù)據(jù)的傳輸速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等。

在同步通訊中,數(shù)據(jù)信號所傳輸?shù)膬?nèi)容絕大部分是有效數(shù)據(jù),而異步通訊中會則會包含數(shù)據(jù)幀的各種標識符,所以同步通訊效率高,但是同步通訊雙方的時鐘允許誤差小,稍稍時鐘出錯就可能導致數(shù)據(jù)錯亂,異步通訊雙方的時鐘允許誤差較大。

STM32串口通信基礎

STM32的串口通信接口有兩種,分別是:UART(通用異步收發(fā)器)、USART(通用同步異步收發(fā)器)。而對于大容量STM32F10x系列芯片,分別有3個USART和2個UART。

UART引腳連接方法

RXD:數(shù)據(jù)輸入引腳,數(shù)據(jù)接收

TXD:數(shù)據(jù)發(fā)送引腳,數(shù)據(jù)發(fā)送

對于兩個芯片之間的連接,兩個芯片GND共地,同時TXD和RXD交叉連接。這里的交叉連接的意思就是,芯片1的RxD連接芯片2的TXD,芯片2的RXD連接芯片1的TXD。這樣,兩個芯片之間就可以進行TTL電平通信了。

若是芯片與PC機(或上位機)相連,除了共地之外,就不能這樣直接交叉連接了。盡管PC機和芯片都有TXD和RXD引腳,但是通常PC機(或上位機)通常使用的都是RS232接口(通常為DB9封裝),因此不能直接交叉連接。RS232接口是9針(或引腳),通常是TxD和RxD經(jīng)過電平轉(zhuǎn)換得到的。故,要想使得芯片與PC機的RS232接口直接通信,需要也將芯片的輸入輸出端口也電平轉(zhuǎn)換成RS232類型,再交叉連接。

經(jīng)過電平轉(zhuǎn)換后,芯片串口和RS232的電平標準是不一樣的:

單片機是TTL電平:+5V表示1,0V表示0

RS232是負邏輯電平,-3~-15V為1,+3~+15V為0

所以單片機串口與PC串口通信就應該遵循下面的連接方式:在單片機串口與上位機給出的RS232口之間,通過電平轉(zhuǎn)換電路(如下面圖中的Max232芯片) 實現(xiàn)TTL電平與RS232電平之間的轉(zhuǎn)換。下圖中的P10,也就是上文中提到的DB9。

STM32的UART特點

全雙工異步通信;

分數(shù)波特率發(fā)生器系統(tǒng),提供精確的波特率。發(fā)送和接受共用的可編程波特率,最高可達4.5Mbits/s;

可編程的數(shù)據(jù)字長度(8位或者9位);

可配置的停止位(支持1或者2位停止位);

可配置的使用DMA多緩沖器通信;

單獨的發(fā)送器和接收器使能位;

檢測標志:① 接受緩沖器 ②發(fā)送緩沖器空 ③傳輸結(jié)束標志;

多個帶標志的中斷源,觸發(fā)中斷;

其他:校驗控制,四個錯誤檢測標志。

串口通信過程

STM32中UART參數(shù)

串口通訊的數(shù)據(jù)包由發(fā)送設備通過自身的TXD接口傳輸?shù)浇邮赵O備的RXD接口,通訊雙方的數(shù)據(jù)包格式要規(guī)約一致才能正常收發(fā)數(shù)據(jù)。STM32中串口異步通信需要定義的參數(shù):起始位、數(shù)據(jù)位(8位或者9位)、奇偶校驗位(第9位)、停止位(1,15,2位)、波特率設置。

UART串口通信的數(shù)據(jù)包以幀為單位,常用的幀結(jié)構(gòu)為:1位起始位+8位數(shù)據(jù)位+1位奇偶校驗位(可選)+1位停止位。

奇偶校驗位分為奇校驗和偶校驗兩種,是一種簡單的數(shù)據(jù)誤碼校驗方法。奇校驗是指每幀數(shù)據(jù)中,包括數(shù)據(jù)位和奇偶校驗位的全部9個位中1的個數(shù)必須為奇數(shù);偶校驗是指每幀數(shù)據(jù)中,包括數(shù)據(jù)位和奇偶校驗位的全部9個位中1的個數(shù)必須為偶數(shù)。

校驗方法除了奇校驗(odd)、偶校驗(even)之外,還可以有:0 校驗(space)、1 校驗(mark)以及無校驗(noparity)。0/1校驗:不管有效數(shù)據(jù)中的內(nèi)容是什么,校驗位總為0或者1。

這個框圖分成上、中、下三個部分,具體的可以看《STM32中文參考手冊》中的描述。

框圖的上部分,數(shù)據(jù)從RX進入到接收移位寄存器,后進入到接收數(shù)據(jù)寄存器,最終供CPU或者DMA來進行讀取;數(shù)據(jù)從CPU或者DMA傳遞過來,進入發(fā)送數(shù)據(jù)寄存器,后進入發(fā)送移位寄存器,最終通過TX發(fā)送出去。

然而,UART的發(fā)送和接收都需要波特率來進行控制的,波特率是怎樣控制的呢?

這就到了框圖的下部分,在接收移位寄存器、發(fā)送移位寄存器都還有一個進入的箭頭,分別連接到接收器控制、發(fā)送器控制。而這兩者連接的又是接收器時鐘、發(fā)送器時鐘。也就是說,異步通信盡管沒有時鐘同步信號,但是在串口內(nèi)部,是提供了時鐘信號來進行控制的。而接收器時鐘和發(fā)送器時鐘又是由什么控制的呢?

可以看到,接收器時鐘和發(fā)送器時鐘又被連接到同一個控制單元,也就是說它們共用一個波特率發(fā)生器。同時也可以看到接收器時鐘(發(fā)生器時鐘)的計算方法、USRRTDIV的計算方法。

這里需要知道一個知識點:

UART1時鐘:PCLK2(高速)

UART2、UART3、UART4時鐘:PCLK1(低速)

責任編輯:haq

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

    關注

    18

    文章

    6071

    瀏覽量

    136426
  • STM32
    +關注

    關注

    2272

    文章

    10924

    瀏覽量

    357583
  • 串口
    +關注

    關注

    14

    文章

    1557

    瀏覽量

    77044

原文標題:一文為你講清楚STM32串口通信基本原理

文章出處:【微信號:pcbgood,微信公眾號:奈因PCB電路板設計】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【正點原子STM32H7R3開發(fā)套件試用體驗】按鍵、串口通信

    【正點原子STM32H7R3開發(fā)套件試用體驗】按鍵、串口通信 本文介紹了單片機開發(fā)板學習中常見且重要的 按鍵輸入 和 串口
    發(fā)表于 12-30 16:53

    串口通信原理解析 串口與并口的區(qū)別

    在計算機硬件和通信領域,串口(Serial Port)和并口(Parallel Port)是兩種常見的數(shù)據(jù)傳輸接口。它們在數(shù)據(jù)傳輸方式、速度、應用場景等方面有著明顯的區(qū)別。 串口通信
    的頭像 發(fā)表于 12-27 09:50 ?591次閱讀

    串口通信的開發(fā)環(huán)境配置

    串口通信的開發(fā)環(huán)境配置涉及多個方面,包括選擇編程語言、安裝必要的庫或驅(qū)動程序、配置串口參數(shù)等。以下是一個基于Python的串口通信開發(fā)環(huán)境配
    的頭像 發(fā)表于 11-22 09:21 ?361次閱讀

    使用Python進行串口通信的案例

    當然!以下是一個使用Python進行串口通信的簡單示例。這個示例展示了如何配置串口、發(fā)送數(shù)據(jù)以及接收數(shù)據(jù)。我們將使用 pyserial 庫,這是一個非常流行的用于串口
    的頭像 發(fā)表于 11-22 09:11 ?473次閱讀

    串口通信與并口通信的區(qū)別

    在計算機和電子設備的數(shù)據(jù)傳輸領域,串口通信(Serial Communication)和并口通信(Parallel Communication)是兩種基本的通信方式。它們各自有著獨特的
    的頭像 發(fā)表于 11-22 09:04 ?1025次閱讀

    串口通信協(xié)議解析 串口通信應用實例

    串口通信協(xié)議解析 串口通信協(xié)議是指規(guī)定了數(shù)據(jù)包的內(nèi)容,內(nèi)容包含了起始位、主體數(shù)據(jù)、校驗位及停止位,雙方需要約定一致的數(shù)據(jù)包格式才能正常收發(fā)數(shù)據(jù)的有關規(guī)范。以下是
    的頭像 發(fā)表于 11-21 17:03 ?714次閱讀

    為什么通信要使用虛擬串口串口助手?

    串口助手和虛擬串口是什么?串口助手和虛擬串口串口通信中很常見。
    的頭像 發(fā)表于 11-15 01:04 ?1656次閱讀
    為什么<b class='flag-5'>通信</b>要使用虛擬<b class='flag-5'>串口</b>和<b class='flag-5'>串口</b>助手?

    stm32串口燒錄怎么設置

    準備工作 確保您擁有STM32開發(fā)板和相應的硬件設備,如USB轉(zhuǎn)串口模塊。 安裝STM32CubeMX和STM32CubeProgrammer軟件,這些是ST官方提供的工具,用于配置和
    的頭像 發(fā)表于 08-22 09:33 ?1853次閱讀

    第19.1 章-星瞳科技 OpenMV視覺循跡功能 超詳細OpenMV與STM32單片機通信

    第19.1 章-[星瞳科技]OpenMV視覺循跡功能 超詳細OpenMV與STM32單片機通信 (有完整版源碼) 【星曈科技】OpenMv筆記——利用OpenMV與STM32進行串口
    的頭像 發(fā)表于 08-20 11:41 ?1100次閱讀
    第19.1 章-星瞳科技 OpenMV視覺循跡功能 超詳細OpenMV與<b class='flag-5'>STM32</b>單片機<b class='flag-5'>通信</b>

    串口通信的基本概念

    串口通信(Serial Communications)的基本概念可以歸納為以下幾個方面:
    的頭像 發(fā)表于 06-12 09:28 ?858次閱讀
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>的基本概念

    什么是串口通信?它有哪些特點和應用?

    在現(xiàn)代電子通信和計算機領域中,串口通信(Serial Communications)扮演著至關重要的角色。它是一種按位(bit)發(fā)送和接收字節(jié)的通信方式,能夠?qū)崿F(xiàn)數(shù)據(jù)的遠距離傳輸和高效
    的頭像 發(fā)表于 05-23 16:23 ?2782次閱讀

    STM32、ESP8266與MQTT連接阿里云物聯(lián)網(wǎng)的串口通信異常解析

    STM32、ESP8266與MQTT協(xié)議連接阿里云物聯(lián)網(wǎng)平臺時常見的串口通信異常介紹 在構(gòu)建物聯(lián)網(wǎng)應用時,STM32、ESP8266與MQT
    的頭像 發(fā)表于 04-19 17:19 ?1566次閱讀

    串口通信如何控制步進電機轉(zhuǎn)動?

    在自動化控制系統(tǒng)中,步進電機的控制是一項重要的技術任務。通過串口通信控制步進電機轉(zhuǎn)動,可以實現(xiàn)遠程控制和自動化操作,提高生產(chǎn)效率和降低人工成本。本文將詳細介紹串口
    的頭像 發(fā)表于 04-19 16:23 ?1896次閱讀

    ?51單片機串口通信詳細介紹-小白必看

    51單片機串口通信是單片機與外部設備通信的重要方式,它基于串行通信的原理,以字節(jié)為單位進行數(shù)據(jù)傳輸。在51單片機中,串口
    的頭像 發(fā)表于 04-17 09:33 ?2155次閱讀
    ?51單片機<b class='flag-5'>串口</b><b class='flag-5'>通信</b>詳細<b class='flag-5'>介紹</b>-小白必看

    UART串口通信協(xié)議是什么?

    UART (Universal Asynchronous Receiver/Transmitter) 是一種通信接口協(xié)議,用于實現(xiàn)串口通信。它是一種簡單的、可靠的、廣泛應用的串口
    的頭像 發(fā)表于 03-19 17:26 ?1547次閱讀
    机械手百家乐的玩法技巧和规则| tag博彩业| 百家乐官网是真的吗| 明溪百家乐官网的玩法技巧和规则 | 菠菜百家乐娱乐城| 大发888线上娱乐百家乐| 百家乐官网园棋牌| 下载百家乐棋牌大厅| 六合彩130| 索雷尔百家乐官网的玩法技巧和规则| 百家乐游戏新| 太阳城百家乐官网怎么出千| 澳门百家乐开户投注| 盈丰国际平台| 风水24山图解| 娱乐城官方网| 百家乐官网娱乐分析软件v| 大发888官网免费下载| 百家乐官网出闲几率| 雅加达百家乐的玩法技巧和规则| 百家乐官网太阳城球讯网| 百家乐路单| 百家乐官网视频打麻将| 百家乐龙虎桌布| 赌博百家乐官网作弊法| 博彩网百家乐中和局| 英吉沙县| 网络百家乐公式打法| 乐百家乐官网彩娱乐城| 闲和庄百家乐娱乐场| 百家乐官网视频二人麻将| 君怡百家乐的玩法技巧和规则 | 凯斯网娱乐城| 网上百家乐投注法| 裕民县| e世博百家乐攻略| 澳门百家乐官网国际娱乐城| 百家乐怎么玩| 德晋百家乐官网的玩法技巧和规则| 17pk棋牌游戏| 百家乐博彩策略论坛|