日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

STM32串口通信的基本原理介紹

STM32嵌入式開發(fā) ? 來源:STM32嵌入式開發(fā) ? 作者:STM32嵌入式開發(fā) ? 2020-11-05 17:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

通信接口背景知識

設備之間通信的方式

一般情況下,設備之間的通信方式可以分成并行通信和串行通信兩種。并行與串行通信的區(qū)別如下表所示。

串行通信的分類

1、按照數(shù)據(jù)傳送方向,分為:

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

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

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

2、按照通信方式,分為:

同步通信:帶時鐘同步信號傳輸。比如: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的電平標準:+15/+13 V表示0,-15/-13表示1。

RS-232通訊協(xié)議標準串口的設備間通訊結構圖如下:

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

RS232串口簡介臺式機電腦后面的9針接口就是com口(串口) 在工業(yè)控制 數(shù)據(jù)采集上應用廣泛上圖中,最右邊的是串口接口統(tǒng)稱為RS232接口,是常見的DB9封裝。

通信過程中只有兩個腳參與通信。

2腳:電腦的輸入RXD

3腳:電腦的輸出TXD 通過2 ,3 腳就可以實現(xiàn)全雙工(可同時收發(fā))的串行異步 通信

5腳:接地

單片機的P3口是有兩個復用接口RXD 和TXD。這是單片機進行串行通信的收發(fā)口,連接應該錯位的對應到電腦的TDX RDX上。注意:單片機和RS232的電平標準是不一樣的。

單片機的電平標準 TTL電平 :+5V表示1 0V表示0。

RS232的電平標準 +15/+13 V表示1 -15/-13 表示0。

所以 單片機與電腦串口通信就應該遵循下面的連接方式:

在單片機與上位機給出的rs232口之間 通過電平轉(zhuǎn)換電路(最上面圖中的Max232芯片) 實現(xiàn)TTL電平與RS232電平之間的轉(zhuǎn)換,PC串口與單片機串口連接方式圖:

注意這兩個DB9:DB91是在電腦上的 DB92是在單片機實驗板上焊接著的。

這里的交叉連接的意思是 DB91的RXD連著DB92的TXD。

DB92的RXD連著DB91的TXD這樣交叉著連接,如果電腦沒有RS232口 只有USB口,可以用串口轉(zhuǎn)接線轉(zhuǎn)出串口,如下圖所示。

這個時候在電腦上位機上需要安裝串口驅(qū)動程序。

注意,這個驅(qū)動程序驅(qū)動的是PL2303芯片(在上圖的大頭里面) 使得RS232信息轉(zhuǎn)換成USB信息。

下圖為上圖的內(nèi)部結構:

用串口通信比USB簡單,因為串口通信沒有協(xié)議,使用方便簡單。

STM32的UART特點

全雙工異步通信;

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

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

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

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

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

檢測標志:

① 接受緩沖器

②發(fā)送緩沖器空

③傳輸結束標志;

多個帶標志的中斷源,觸發(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ù)包以幀為單位,常用的幀結構為: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。

UART(USART)框圖

這個框圖分成上、中、下三個部分。本文大概地講述一下各個部分的內(nèi)容,具體的可以看《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的計算方法。

責任編輯:xj

原文標題:STM32串口通信基本原理

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

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

    關注

    2313

    文章

    11196

    瀏覽量

    374775
  • 通信接口
    +關注

    關注

    3

    文章

    268

    瀏覽量

    31998
  • 串口通信
    +關注

    關注

    34

    文章

    1663

    瀏覽量

    58204

原文標題:STM32串口通信基本原理

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    時鐘芯片的基本原理及行業(yè)應用

    隨著數(shù)智化社會的不斷發(fā)展,時鐘芯片作為數(shù)字電路中控制時間的核心部件,已經(jīng)成為智能設備不可分割的一部分。本文將對時鐘芯片的基本原理及行業(yè)應用進行詳細的分析,幫助大家更好地了解這一領域的發(fā)展趨勢。一
    的頭像 發(fā)表于 03-17 15:53 ?6252次閱讀
    時鐘芯片的<b class='flag-5'>基本原理</b>及行業(yè)應用

    STM32驅(qū)動串口屏,STM32F103C8T6串口發(fā)送指令控制HMI串口

    僅是一部分常用的基礎指令,更多更仔細的指令或者函數(shù)可以訪問陶晶馳資料官網(wǎng)。 硬件和接線 硬件需要一塊STM32F103C8T6的開發(fā)板,杜邦線諾干,2.4寸串口屏一塊 接線 串口STM32
    的頭像 發(fā)表于 02-10 17:07 ?635次閱讀
    <b class='flag-5'>STM32</b>驅(qū)動<b class='flag-5'>串口</b>屏,<b class='flag-5'>STM32</b>F103C8T6<b class='flag-5'>串口</b>發(fā)送指令控制HMI<b class='flag-5'>串口</b>屏

    自適應濾波算法介紹之維納濾波器的基本原理和應用示例

    前面我們介紹了匹配濾波器,本文將介紹維納濾波器。首先我們回顧了維納濾波的主人公Norbert Wiener,然后描述了維納濾波的基本原理和推導,最后給出一個簡單的維納濾波應用。
    的頭像 發(fā)表于 01-07 15:22 ?3392次閱讀
    自適應濾波算法<b class='flag-5'>介紹</b>之維納濾波器的<b class='flag-5'>基本原理</b>和應用示例

    串口調(diào)試步驟(適合免驅(qū)動的232串口設備)

    密碼切換到root超級管理下 apt update 更新插件 apt-get install cutecom 安裝系統(tǒng)自帶的串口調(diào)試工具 cutecom 輸入串口測試的指令會彈出一個圖形界面如下圖 32串口協(xié)議測試需要將第2和第
    的頭像 發(fā)表于 12-17 17:23 ?1665次閱讀
    <b class='flag-5'>串口</b>調(diào)試步驟(適合免驅(qū)動的232<b class='flag-5'>串口</b>設備)

    UWB650串口測距通信定位模塊規(guī)格書

    UWB650串口測距通信定位模塊規(guī)格書
    發(fā)表于 11-03 17:40 ?1次下載

    簡述沖擊電壓發(fā)生器的基本原理?

    沖擊電壓發(fā)生器的基本原理是 “電容并聯(lián)充電、串聯(lián)放電”,核心流程分三步: 先通過整流電路,將工頻交流電轉(zhuǎn)換為直流電,給多組電容器并聯(lián)充電,儲存足夠電能并達到設定電壓; 當充電完成后,觸發(fā)高壓開關使
    發(fā)表于 10-17 14:10

    關于stm32f4zgt6和mspm0g3507串口通信問題

    本人在使用stm32f4zgt6和mspm0g3507串口通信時出現(xiàn)問題,情況如下: m0芯片使用軟件超時解析進行數(shù)據(jù)接收,使用標準庫的transmit函數(shù)進行數(shù)據(jù)發(fā)送。 stm32使
    發(fā)表于 09-01 11:11

    DTU的S485/232串口能夠復用嗎?

    想問一下,DTU的S485/232串口能夠復用嗎?就是窗口下面接很多傳感器設備那種,主要是傳感器數(shù)量過大,一個傳感器接一臺DTU太過于浪費。
    發(fā)表于 08-06 06:58

    STM32串口發(fā)送數(shù)據(jù),USART_FLAG_TC無法置位怎么解決?

    STM32串口發(fā)送數(shù)據(jù),在經(jīng)過一段時間的數(shù)據(jù)發(fā)送,大概200ms發(fā)送一下,一次發(fā)送大概二三十個字節(jié)的數(shù)據(jù),有可能會發(fā)生USART_FLAG_TC不置位的情況,如何解決或者避免?輪詢發(fā)送,后卡在了
    發(fā)表于 07-29 11:44

    串口轉(zhuǎn)網(wǎng)網(wǎng)關有哪些功能應用

    直接接入信息網(wǎng)絡的痛點,同時支持多協(xié)議解析、邊緣計算與安全防護等高級功能。 在工業(yè)自動化生產(chǎn)線上,大量設備如 PLC(可編程邏輯控制器)、傳感器、儀表等仍采用串口通信,而上位機則是通過以太網(wǎng)進行
    的頭像 發(fā)表于 07-17 17:10 ?942次閱讀
    <b class='flag-5'>串口</b>轉(zhuǎn)網(wǎng)<b class='flag-5'>口</b>網(wǎng)關有哪些功能應用

    STM32驅(qū)動ADS1256串口輸出-AD轉(zhuǎn)換

    文章介紹了如何使用STM32通過SPI接口初始化并驅(qū)動ADS1256高精度AD轉(zhuǎn)換器,包括ADS1256的芯片特點、引腳說明、模塊配置、程序初始化以及實驗中的接線和現(xiàn)象。在實驗中,通過讀取各個通道的AD值并轉(zhuǎn)換為電壓,展示了芯片功能的正確實現(xiàn)。
    的頭像 發(fā)表于 07-01 14:59 ?2550次閱讀
    <b class='flag-5'>STM32</b>驅(qū)動ADS1256<b class='flag-5'>串口</b>輸出-AD轉(zhuǎn)換

    ESP32用作經(jīng)典藍牙串口透傳模塊與手機進行串口通信

    本文介紹了如何把ESP32用作一個藍牙串口透傳設備使用,其功能和常用的HC-05/06串口藍牙設備一樣。并與手機藍牙串口APP進行雙向藍牙通信
    的頭像 發(fā)表于 06-20 17:45 ?3476次閱讀
    ESP32用作經(jīng)典藍牙<b class='flag-5'>串口</b>透傳模塊與手機進行<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    單片機實例項目:ESP8266串口WIFI

    單片機實例項目:ESP8266串口WIFI,推薦下載!
    發(fā)表于 06-03 21:01

    了解信號完整性的基本原理

    ,設計人員必須注意電路板布局并使用適當?shù)膶Ь€和連接器,從而最大限度地減少反射、噪聲和擾。此外,還必須了解傳輸線、阻抗、回波損耗和共振等基本原理。 本文將介紹討論信號完整性時使用的一些術語,以及設計人員需要考慮的問題,然后
    的頭像 發(fā)表于 05-25 11:54 ?1666次閱讀
    了解信號完整性的<b class='flag-5'>基本原理</b>

    RS485通信協(xié)議介紹

    在上期我們介紹了RS232行通訊,本期我們將進一步深入探討另一種廣泛應用于工業(yè)自動化和數(shù)據(jù)通信領域的串行通信標準——RS485。
    的頭像 發(fā)表于 05-15 11:42 ?1691次閱讀
    RS485<b class='flag-5'>串</b>行<b class='flag-5'>通信</b>協(xié)議<b class='flag-5'>介紹</b>
    乌拉特后旗| 剑川县| 曲沃县| 兰坪| 靖安县| 万盛区| 荥经县| 文登市| 方山县| 肇庆市| 昌图县| 中超| 长垣县| 北海市| 北票市| 江华| 台中市| 崇义县| 镇康县| 阜平县| 清徐县| 温州市| 龙州县| 岳普湖县| 岳普湖县| 沙湾县| 盐城市| 额敏县| 巴塘县| 绥阳县| 南通市| 吉安市| 英山县| 澄城县| 岱山县| 泊头市| 石河子市| 革吉县| 名山县| 建阳市| 左权县|