一、UART與USART?
UART:通用異步收發(fā)器 USART:通用同步和異步收發(fā)器
同步:發(fā)送端發(fā)送數(shù)據(jù)后,接收端回應(yīng)后才發(fā)下一個(gè)數(shù)據(jù)包,是為阻塞模式
異步:發(fā)送端發(fā)送收據(jù)后,不需要等待接收端回應(yīng),接著發(fā)送下一個(gè)數(shù)據(jù)包,是為非阻塞模式
半雙工:允許數(shù)據(jù)在兩個(gè)方向上傳輸,但是某一時(shí)間,只允許數(shù)據(jù)在一個(gè)方向上傳輸
全雙工:允許數(shù)據(jù)同時(shí)在兩個(gè)方向上傳輸
SPI為同步全雙工通信、IIC為同步半雙工通信,UART為異步全雙工通信、USART為同步或異步通信
UART數(shù)據(jù)格式:
數(shù)據(jù)幀格式:開(kāi)始位、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位
起始位:開(kāi)始發(fā)送一個(gè)字節(jié)數(shù)據(jù),數(shù)據(jù)線為邏輯0狀態(tài)
數(shù)據(jù)位:數(shù)據(jù)位為一般為8位(也有5、6、7位),低位LSB在前,高位MSB在后
奇偶檢驗(yàn)位:用來(lái)判斷接收的數(shù)據(jù)是否錯(cuò)誤,分為NONE無(wú)校驗(yàn)、ODD奇校驗(yàn)、EVEN偶校驗(yàn)、MASK標(biāo)志位即
校驗(yàn)位一直為1、SPACE空白即校驗(yàn)位一直為0
停止位:表示一個(gè)字節(jié)數(shù)據(jù)發(fā)送完成,數(shù)據(jù)線為邏輯1狀態(tài)
沒(méi)有數(shù)據(jù)發(fā)送時(shí),數(shù)據(jù)線TX、RX為邏輯1狀態(tài),當(dāng)有數(shù)據(jù)要傳輸時(shí),數(shù)據(jù)線從邏輯1變?yōu)檫壿?狀態(tài)
二、STM32的USART:
作為嵌入式開(kāi)發(fā)人員,STM32的USART是繞不開(kāi)的通信接口之一,什么是USART?STM32中文參考手冊(cè)給的介紹是這樣的:
學(xué)習(xí)USART之前,首先要了解STM32的時(shí)鐘結(jié)構(gòu),我們以STM32F103XX舉例,在STM32F103XX數(shù)據(jù)手冊(cè)中,我們可以
看到下面兩張圖片,STM32F103xx performance line block diagram(STM32F103xx性能線框圖)、Clock tree(時(shí)鐘樹(shù)),從
性能線框圖上我們可以知道STM32的哪些外設(shè)是掛載在APB1上,哪些外設(shè)是掛載在APB2上的,同時(shí)可以知道相關(guān)外設(shè)的一些
信息,例如:TIM的通道數(shù)、APB2 /1的最大頻率、芯片的最大時(shí)鐘頻率、Flash的大小等。因此我們得到:STM32F103XX的
USART1掛載在APB2上,最大頻率為72MHz;USART23X掛載在APB1上,最大頻率為36MHz。而STM32的USART的通信速率
與USART時(shí)鐘息息相關(guān),這在STM32F103XX數(shù)據(jù)手冊(cè)中也有相關(guān)描述,原文見(jiàn)下圖,附翻譯。
翻譯為:
其中一個(gè)USART接口能夠以高達(dá)4.5 Mbit/s的速度進(jìn)行通信。其他可用接口的通信速率最高為2.25 Mbit/s。他們提供硬件CTS
和RTS信號(hào)的管理,IrDA SIR ENDEC的支持,是ISO 7816兼容,有LIN主從能力。DMA控制器可以提供所有的USART接口。
這里說(shuō)的能實(shí)現(xiàn)4.5Mbit/s的速度的USART便是USART1。
三、什么是波特率?什么是比特率?
百度百科的解釋是這樣的:
引用百度百科的例子說(shuō)明:假如數(shù)據(jù)傳輸速率為11520B/s,每個(gè)字符B包括10位(1個(gè)開(kāi)始位、8個(gè)數(shù)據(jù)位、1個(gè)停止位),波
特率為11520Baud(波特),比特率 = 11520 * 10 = 115200bps(bit/s)讀為:比特每秒。
值得注意的是:在實(shí)際的嵌入式開(kāi)發(fā)過(guò)程中,波特率與比特率經(jīng)常相同,具體表現(xiàn)為:我們說(shuō)的波特率為115200Baud,而實(shí)際值
卻是比特率115200bit/s。在通信調(diào)試中我們會(huì)遇到諸如時(shí)鐘配置、USART配置不正確的情況,從而導(dǎo)致通信失敗,使用示波器捕獲
USART波形可以幫助定位問(wèn)題所在,大概操作為:配置USART不斷輸出0x55(01010101),示波器抓到波形后,使用測(cè)量工具測(cè)量
每個(gè)位的開(kāi)始與結(jié)束時(shí)間間隔,與實(shí)際設(shè)置波特率相比較,通常誤差不超過(guò)100ns通信不會(huì)有問(wèn)題。
示例:波特率為:115200bit/s,輸出每個(gè)位的時(shí)間為:1 / 115200 = 0.00000868s = 8.68us。
STM32波特率的計(jì)算
STM32的串口波特率是通過(guò) 波特比率寄存器(USART_BRR) 設(shè)置的,在 STM32F103XX中文參考手冊(cè) 中有這樣一段介紹:
我們得知:STM32的 波特比率寄存器USART_BRR 支持分?jǐn)?shù)設(shè)置,精確度因此提高。在手冊(cè)中給出了波特率的計(jì)算公式:
示例:假設(shè)我們需要實(shí)現(xiàn)2.5Mbit/s的通信速率,由上我們知道只有STM32的USART1可以實(shí)現(xiàn)該通信速率
USART1的外設(shè)時(shí)鐘(fck)為72MHz,fck / 波特率 = 16 * USARTDIV ===》 USARTDIV = 1.8,將整數(shù)部分1 = 0x01寫(xiě)入
USART_BRR的位15:4,小數(shù)部分(0.8 * 16) = 12.5 ≈ 13 = 0xD寫(xiě)入U(xiǎn)SART_BRR的位3:0即可。USART_BRR的值為
0x1D;值得注意的是:使用庫(kù)函數(shù)不用自行寫(xiě)入U(xiǎn)SART_BRR的值。
四、基于CubeMX與HAL庫(kù)實(shí)現(xiàn)USART1的2.5Mbit/s通信速率
下載到開(kāi)發(fā)板后,使用示波器采集USART1發(fā)送端口波形,得到的波形如下圖,因?yàn)?.5Mbit/s傳輸速率每位傳輸時(shí)間為 1 /2500000 = 400ns,
而波形顯示的每位傳輸時(shí)間大致為400ns,說(shuō)明配置成功。
上一篇:STM32之JTAG、SWD模式
下一篇:神舟IV學(xué)習(xí)筆記-信號(hào)發(fā)生器(十七)
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來(lái)
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問(wèn)外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 阿里黑科技落地!夸克AI眼鏡全球首發(fā),高德、淘寶、支付寶都能用
- 化繁為簡(jiǎn), 適配復(fù)雜磁場(chǎng)環(huán)境,MT73xx 3D雙路輸出霍爾鎖存器賦能車(chē)規(guī)電機(jī)精準(zhǔn)控制
- 9.5億美元收購(gòu)恩智浦MEMS傳感器業(yè)務(wù),意法半導(dǎo)體 在傳感器領(lǐng)域的地位再升級(jí)
- 高性能電動(dòng)滑板車(chē) BLDC 電機(jī)驅(qū)動(dòng)器:技術(shù)解析與應(yīng)用展望
- 5G工業(yè)網(wǎng)關(guān)的“邊緣計(jì)算+AI推理”一體化設(shè)計(jì),PLC協(xié)議解析與缺陷檢測(cè)的實(shí)時(shí)聯(lián)動(dòng)
- AR眼鏡的“工業(yè)指令投射”系統(tǒng),SLAM的空間定位、PLC數(shù)據(jù)實(shí)時(shí)疊加顯示
- 多光譜氣體傳感器的抗交叉干擾設(shè)計(jì)
- 多模態(tài)融合感知的“語(yǔ)義-幾何”聯(lián)合建模
- 工業(yè)觸摸屏的“壓感-手勢(shì)”多模態(tài)交互設(shè)計(jì)
- 工業(yè)機(jī)器人高精度力控的“雙模融合”傳感器設(shè)計(jì)
- ADI有獎(jiǎng)下載活動(dòng)之2——太陽(yáng)能光伏發(fā)電解決方案
- 跟帖免費(fèi)申請(qǐng)UFUN學(xué)習(xí)板開(kāi)始啦,跟著張進(jìn)東學(xué)習(xí)&進(jìn)階模擬、工程技能
- 免費(fèi)申請(qǐng)?jiān)囉脇福祿克Norma6000功率分析儀
- 中國(guó)版BeagleBone Black 春節(jié)不打烊,火爆開(kāi)團(tuán)!
- 【EEWORLD第六屆社區(qū)明星人物】8月明星人物
- TI 電機(jī)驅(qū)動(dòng)應(yīng)用闖關(guān)答題賽
- MPS探索營(yíng) “正經(jīng)玩技術(shù)”!創(chuàng)意征集 | 解鎖鋰電池充電的無(wú)限玩法!
- 調(diào)查:全新 TI E2E中文社區(qū)等你體驗(yàn),等你抽獎(jiǎng)!還可邀請(qǐng)好友助你一臂之力!
- 任選下載有禮|《新概念模擬電路》全五冊(cè)合集/《ADI 參考電路合集》
- MC9S12XEP100 ATD模塊 驅(qū)動(dòng)程序
- 藍(lán)牙測(cè)向解決方案實(shí)現(xiàn)高精度低功耗藍(lán)牙設(shè)備定位
- MC9S12XEP100的IIC模塊(IICV3)
- MC9S12XEP100 IIC模塊 驅(qū)動(dòng)程序
- MC9S12XS128MAL Bootloader(1)
- 電話(huà)機(jī)器人的原理是什么?你今天被騷擾了嗎?
- 又一大5nm杰作:三星5G SoC Exynos 2100即將亮相
- IDC:2021年中國(guó)PC市場(chǎng)十大預(yù)測(cè)
- SK海力士為下一代存儲(chǔ)技術(shù)備戰(zhàn),新研發(fā)中心RTC成立
- 中大力德再次表示:諧波減速器已小批量生產(chǎn)