娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年06月13日(星期五)

2019年06月13日 | STM32-串口通訊工作原理

發布者:電子藝術大師 來源: eefocus關鍵字:STM32  串口通訊  工作原理 手機看文章 掃描二維碼
隨時隨地手機看文章

STM32 USART 簡介

STM32芯片具有多個USART外設用于串口通訊,USART(通用同步異步收發器)能夠靈活地與外部設備進行全雙工通訊。USART的全稱“通用同步異步收發器”,也就是說他可以同步通信也可以異步通信。但是我們實現串口打印調試信息到電腦,其實只用到了他的異步通信的功能。


USART除了有串口功能,它滿足外部設備對工業標準NRZ 異步串行數據格式的要求,并且使用了小數波特率發生器提供了多種波特率,使得它的應用更加廣泛。它還支持同步單向通信和半雙工單線通信;還支持 LIN(局域互連網絡)、智能卡協議與 IrDA(紅外線數據協會) SIR ENDEC 規范,以及調制解調器操作 (CTS/RTS)。而且,它還支持多處理器通信。所以說USART還是很強悍的,我們不可能一一講解這些功能,其他功能還有待大家一起去研究。具體這些功能的詳細介紹可查看《STM32F4xx中文參考手冊》26章通用同步異步收發器(USART)。


USART框圖分析


USART程序框圖

此圖我們可以分為四部分講解分為引腳講解、波特率發生器、USART控制單元、數據交換相關寄存器。


1.USART功能引腳

Tx:發送數據輸出引腳


Rx:接收數據輸入引腳


SW_Rx:數據接收引腳,只用于單線和智能卡模式,屬于內部引腳,沒有具體外部引腳。


nRST:請求以發送(Request To Send), n 表示低電平有效。如果使能 RTS 流控制,當USART 接收器準備好接收新數據時就會將 nRTS 變成低電平;當接收寄存器已滿時,nRTS 將被設置為高電平。該引腳只適用于硬件流控制。


nCTS:清除以發送(Clear To Send), n 表示低電平有效。如果使能 CTS 流控制,發送器在發送下一幀數據之前會檢測 nCTS 引腳,如果為低電平,表示可以發送數據,如果為高電平則在發送完當前數據幀之后停止發送。該引腳只適用于硬件流控制。


SCLK:發送器時鐘輸出引腳。這個引腳僅適用于同步模式。


STM32F411CCU6一共有3個USART,USART1和USART6時鐘來源與APB2總線時鐘,其最大頻率為100MHz, USART2來源于APB1總線時鐘,其最大頻率為50MHz。也就意味著他們的最大通訊速率也是不同的。


2.USART波特率發生器

看USART內部框圖2部分,USART的發送器速率控制與接收器速率控制共用一個波特率寄存器(USART_BRR),波特率寄存器里存放的是時鐘分頻值它一共16位,分為整數部分DIV_Mantissa[16:5]和小數部分DIV_Fraction[4:0]兩部分。 USART通信所需波特率是對相應總線時鐘分頻然后一系列計算所得到的。USART波特率計算公式如下:

波特率計算公式

波特率計算公式


fck:系統總線時鐘。USART1和USART6在APB2總線下,USART2在APB1總線下


0VER8:是由USART_CR1的第15位設置。O:16倍過采樣;1:8倍過采樣


USARTDIV:波特率分頻系數,USART_BRR配置得到。USARTDIV的計算公式


USARTDIV = DIV_Mantissa + (DIV_Fraction/8 * (2-OVER8))


 


以下例題:


1.知USARTDIV(10進制)算出USART_BRR(16進制)的值


例如:如果OVER8=0, USARTDIV=25.62,求USART_BRR?


DIV_Fraction = 16*0.62 = 9.92 約等于10 = 0xA;


DIV_Mantissa = 25 = 0x19;


則USART_BRR = 0x19A;


 


2.知USART_BRR(16進制)算出USARTDIV(10進制)的值


例如:如果OVER8=0, USART_BRR=0x1BC,求USARTDIV?


DIV_Mantissa = 0x1B = 27;


DIV_Fraction = 12/16 = 0.75;


則USARTDIV = 27.75;


3.USART波特率計算

例如:USART1通信的波特率位115200,0VER8=0,fck = 100Mhz,求USARTDIV?



解得USARTDIV = 54.253472,可根據上面公式算出DIV_Mantissa = 0x36, DIV_Fraction = 0x4,那么USART_BRR = 0x364


在計算 DIV_Fraction 時經常出現小數情況,經過我們取舍得到整數,這樣會導致最終輸出的波特率較目標值略有偏差。下面我們從 USART_BRR 的值為 0x364 開始計算得出實際輸出的波特率大小。


由 USART_BRR 的值為 0x364,可得 DIV_Fraction=4, DIV_Mantissa=54,所以USARTDIV=54+4/16 =54.25,所以實際波特率為: 115207;這個值跟我們的目標波特率誤差為 0.03%,這么小的誤差在正常通信的允許范圍內。


0VER8=1時,8 倍過采樣時計算情況原理是一樣的。此部分內容不必全部搞懂,波特率具體計算在庫函數中都已完成,不用我們一一計算。


4.USART控制單元

看USART內部框圖3部分,是整個USART外設的控制單元,包括發送控制器、喚醒單元、接收控制器,我們通過配置寄存器相應位來設置這些控制器的工作模式,USART的配置寄存器一共有三個我們在這里不一一講解,我們看這個框圖只需理解USART的大致工作過程即可,具體寄存器的配置我們直接調用庫函數即可配置,無需我們一位一位的手動配置,如想仔細了解各寄存器的位詳細意義,可參考《STM32f4xx中文參考手冊》和《RM0383_STM32F411CCU6_Reference manual》。


發送控制器:工作在發送模式,它將按照程序設置的波特率、幀格式將CPU的數據或者DMA總線上的數據一位一位送到Tx引腳。


接收控制器:工作在接收模式,它將按照程序設置的波特率、幀格式將數據從Rx引腳一位一位的接收外部發來的數據并上傳給CPU或者DMA。


5.USART數據寄存器移位寄存器

看USART內部框圖4部分,此部分是USART外設外部與內部總線和DMA聯系的接口,4部分一共四個寄存器,發送模式用的“發送數據寄存器(TDR)”和“發送移位寄存器”,接收模式用的“接收數據寄存器(RDR)”和“接收移位寄存器”。其實TDR和RDR都屬于數據寄存器(USART_DR)具體寄存機介紹看《STM32F4xx中文參考手冊》。我們用的時候可以當成兩個用。


USART發送過程:

     內部總線有數據需要發送時,


首先要使能發送即USART_CR1的TE位置1;

接著內部總線的數據的一個字節寫入“發送數據寄存器(TDR)”;(該操作將清零TXE位也就是發送數據寄存器非空,數據其他數據不可以寫入)

緊接著“發送數據寄存器(TDR)”中的數據一次性復制進入“發送移位寄存器”;(將TXE位置既發送數據寄存器為空,后續數據可以接著寫入)

“發送移位寄存器”將剛才“發送數據寄存器(TDR)”復制得數據一位一位的送到Tx引腳

循環執行上面的操作,直到總線將最后一個數據寫入“發送數據寄存器(TDR)”后,等待TC=1。這表明最后一幀的傳送已完成。

     USART接收過程:

      Rx引腳有數據輸入時,


首先要使能接收即USART_CR1的RE位置1;


然后Rx引腳移入數據的最低有效位,到“接收移位寄存器”;


當“接收移位寄存器”8位滿時,將數據一次性寫入“接收數據寄存器(RDR)”;(該操作將RXNE置1既接收數據寄存器非空,總線可讀取)


總線發現RXNE=1時立即讀取數據并將RXNE置零(注意接收期間每接收一個字節RXNE都置1)


循環執行上面操作,直到Rx引腳將最后一字節數據傳送入“接收數據寄存器(RDR)”后,等待總線讀取完成。



關鍵字:STM32  串口通訊  工作原理 引用地址:STM32-串口通訊工作原理

上一篇:STM32自打包的UART串口通訊編程方法
下一篇:STM32時鐘樹與啟動過程時鐘設置分析

推薦閱讀

? ? ?如今,在沒有新的接盤者的情況下,新飛從一代巨頭走到了被拍賣。  “新飛廣告做的好、不如新飛冰箱好”。新飛曾是中國最老牌的冰箱品牌之一,是很多人家里的第一臺冰箱,但這家經歷了停產風波后的老企業,卻走向了清算破產。  投資界6月10日消息,近日,阿里拍賣平臺顯示,新飛系新飛電器/家電/制冷器具三家公司的全部股權將于2018年6月28日...
(圖片來源:Northvolt官網)據外媒報道,當地時間6月12日,瑞典Northvolt公司宣布了一項10億美元的股權融資協議,該項協議將使歐洲首個鋰離子電池超級工廠Northvolt Ett在瑞典謝萊夫特奧(Skellefte?)建立。與大眾集團合作,Northvolt還宣布計劃在德國下薩克森州建立第二個超級工廠。Northvolt聯合創始人兼首席執行官Peter Carlsson表示,“今天不僅對N...
  從2013年一直快速發展的中國工業機器人市場,這兩年卻踩了“急剎車”。2018年9月,工業機器人產業急轉直下,產量持續下滑。可喜的是,經過一年多調整后,機器人產業正在慢慢走出頹勢。   工業機器人行業現狀   1、工業機器人產量增速連續兩月回正   2018年9月工業機器人進入低谷期,產量同比減少16.4%,此后工業機器人產量持續下滑。下滑態...
Adobe 近日宣布,將于 6 月 21 日下架蘋果 App Store 的兩款免費 App——PhotoShop Mix 和 PhotoShop Fix。  Adobe 在兩款 App 的問答頁面中宣布了這一消息,官方還建議用戶改用訂閱制的 Photoshop Express Photo Editor。  IT之家了解到,PhotoShop Mix 和 PhotoShop Fix 是 Adobe 早年上架蘋果 App Store 的...

史海拾趣

問答坊 | AI 解惑

請教~

為什么我下載的時候會彈出一個窗口,上面寫著:下載會導致你的芯幣低于0,請修正后再下載,這是怎么回事?…

查看全部問答∨

全國大學生電子設計競賽訓練教程

群里朋友傳的 共享下 本書是針對全國大學生電子設計競賽特點和需要,為高等院校電子信息工程、通信工程、自動化、電氣控制類專業學生編寫的培訓教材。全書共分8章,內容包括: 電子設計競賽題目分析,電子設計競賽基礎訓練,單元電子電路訓練,單 ...…

查看全部問答∨

淺談示波器的存儲深度

得益于電子技術的發展,在國外三巨頭壟斷的示波器領域,國產示波器也如雨后春筍般涌現出來,優秀國產示波器的代表:鼎陽(Siglent)科技和北京普源精電,如今得到了長足的發展,但由于信號傳輸的鏈路瓶頸以及IC封鎖,夾縫中生長的國產示波器注定暫 ...…

查看全部問答∨

關于MAX1472

各位前輩,小弟現要做一個無線自動對碼系統,用MAX1472做發射芯片(433M),那位能給個帶放大的電路,最好能帶參數,先在這里謝謝了!!E-mail:huaxf1980@yahoo.cn…

查看全部問答∨

《家庭電子小制作》高清晰PDF

內容簡介 本書介紹的家庭電子小制作,適合于業余條件下制作。這些經精選的電子小裝置具有較強的趣味性和實用性,且與日常生活密切相關,如彩燈鏈、照明控制器、溫控器、電扇調整器、延時電路、電子門鈴、報警器、防盜器等。為了便于電子愛好者學習 ...…

查看全部問答∨

未來手機可以利用體溫來充電

本帖最后由 jameswangsynnex 于 2015-3-3 19:58 編輯 手機已成為人們生活中不可缺少的通信工具。目前手機都是由可充電的鋰離子電池供電,在野外或無市電的情況下,手機隨時可能沒電,這給使用者帶來許多不便。 經研究人體與環境之間總是存在溫差 ...…

查看全部問答∨

墻外第一支花

昨天晚上收到喜訊,家住深圳坂田的 騎士 兄弟在自己的44b0x板上,成功運行了djyos,這是我所知道的、djyos在我家書房外面所開的第一支花,發帖慶賀一下。 下面是騎士給我傳過來的運行圖片。 C:\\Documents and Settings\\Owner\\My Documents\\My ...…

查看全部問答∨

基于嵌入式系統的協議轉換器

在大型工業控制系統,軍事和航天系統,智能家居管理系統等較為復雜的系統中,許多情況下系統中存在著大量遵循不同協議的設備,例如遵循RS232、RS485、UDP、TCP/IP等協議的設備共同存在于系統中。多種協議并存時,要求系統能識別不同的協議信息,通 ...…

查看全部問答∨

usbkey

從事專業的cos開發工作,熟悉各種cos工作原理,愿意長期承接以下工作: 1、開發各種usb加密狗、usbkey開發。 2、開發PKI,PBOC加密鎖COS,可以開發基于U盤、HID、CCID等協議的無驅cos; 3、開發各平臺USB KEY驅動; 4、專業開發CSP、PKCS11中間 ...…

查看全部問答∨

收到開發板了,上圖

下午兩點多順豐就把開發板送來了,那個激動啊,啥也不說了,直接上圖,感覺板子好小巧,,下載了幾個程序進去,OLED顯示屏的效果真的不錯。 , \\   [ 本帖最后由 beyondvv 于 2010-11-4 21:25 編輯 ]…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 南宫市| 南部县| 白朗县| 肥东县| 和顺县| 上蔡县| 军事| 海阳市| 无锡市| 攀枝花市| 观塘区| 高青县| 宜昌市| 公安县| 宝应县| 清河县| 施秉县| 晋宁县| 渝中区| 吉木萨尔县| 安宁市| 乐陵市| 绍兴县| 鄂托克旗| 原平市| 哈密市| 托克逊县| 台东县| 广河县| 镇巴县| 宜城市| 游戏| 沐川县| 淮安市| 江华| 白河县| 汨罗市| 阿鲁科尔沁旗| 朝阳区| 修文县| 黑河市|