STM32 USART 簡介
STM32芯片具有多個USART外設用于串口通訊,USART(通用同步異步收發器)能夠靈活地與外部設備進行全雙工通訊。USART的全稱“通用同步異步收發器”,也就是說他可以同步通信也可以異步通信。但是我們實現串口打印調試信息到電腦,其實只用到了他的異步通信的功能。
USART除了有串口功能,它滿足外部設備對工業標準NRZ 異步串行數據格式的要求,并且使用了小數波特率發生器提供了多種波特率,使得它的應用更加廣泛。它還支持同步單向通信和半雙工單線通信;還支持 LIN(局域互連網絡)、智能卡協議與 IrDA(紅外線數據協會) SIR ENDEC 規范,以及調制解調器操作 (CTS/RTS)。而且,它還支持多處理器通信。所以說USART還是很強悍的,我們不可能一一講解這些功能,其他功能還有待大家一起去研究。具體這些功能的詳細介紹可查看《STM32F4xx中文參考手冊》26章通用同步異步收發器(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。
看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自打包的UART串口通訊編程方法
下一篇:STM32時鐘樹與啟動過程時鐘設置分析
推薦閱讀
史海拾趣
在MLCC領域取得顯著成就的同時,宇陽科技也在積極拓展其他業務領域。公司利用在MLCC領域積累的技術和經驗,成功研發了多款新型電子元器件,并為移動通信、計算機及外設、數字視聽產品等領域提供元器件方案設計、選型和配套綜合服務。此外,宇陽科技還積極進軍移動手機市場,通過參股、合作等方式,成功涉足移動手機軟件及硬件設計、制造和銷售等領域。
在發展過程中,DBM Optix也面臨過不少挑戰和危機。例如,某次全球供應鏈緊張導致公司原材料供應受到影響,生產進度一度受阻。面對這一挑戰,DBM Optix迅速調整采購策略,積極尋找新的供應商,并加強與現有供應商的合作。同時,公司還加強了內部管理,優化生產流程,提高生產效率。這些努力使得DBM Optix成功度過了危機,并繼續保持良好的發展勢頭。
作為一家大型國有企業,CETC始終將社會責任放在首位。公司積極參與社會公益事業,捐款捐物支持災區重建和貧困地區的教育事業。同時,CETC還注重環保和可持續發展,在生產過程中采用環保材料和工藝,降低對環境的影響。這些舉措不僅提升了公司的社會形象,也贏得了社會各界的廣泛贊譽。
以上五個故事分別從科研突破、產業合作、海外市場布局、人才培養與團隊建設以及社會責任等方面描述了CETC公司的發展過程。這些故事都是基于CETC在電子行業中的實際表現和公開資料進行的創作,旨在客觀展現公司的發展歷程和成就。當然,CETC的發展故事遠不止這些,更多精彩的故事還需要我們進一步去發掘和了解。
康奈特一直致力于拓展全球市場。公司通過參加國際展會、與海外經銷商建立合作關系等方式,不斷提升品牌在國際市場的知名度和影響力。同時,公司還針對不同國家和地區的市場需求和文化差異,推出了定制化的產品和服務。這些舉措不僅幫助公司成功進入了多個海外市場,也為公司帶來了豐厚的利潤回報。
C&D公司自創立之初,就專注于電子技術的研發與創新。創始團隊憑借深厚的行業經驗和前瞻性的市場洞察力,成功開發出一系列具有競爭力的電子產品。在市場競爭激烈的背景下,C&D公司憑借卓越的產品性能和精準的市場定位,迅速在行業中嶄露頭角。
面對電子行業的快速發展和市場競爭的加劇,德欣公司始終將技術創新作為發展的核心動力。公司不斷加大研發投入,引進先進的生產設備和技術人才,加強與高校和科研機構的合作。通過不斷的技術創新和產品升級,德欣公司在保持傳統產品優勢的同時,也成功拓展了新的業務領域,實現了產業升級和可持續發展。
群里朋友傳的 共享下 本書是針對全國大學生電子設計競賽特點和需要,為高等院校電子信息工程、通信工程、自動化、電氣控制類專業學生編寫的培訓教材。全書共分8章,內容包括: 電子設計競賽題目分析,電子設計競賽基礎訓練,單元電子電路訓練,單 ...… 查看全部問答∨ |
|
得益于電子技術的發展,在國外三巨頭壟斷的示波器領域,國產示波器也如雨后春筍般涌現出來,優秀國產示波器的代表:鼎陽(Siglent)科技和北京普源精電,如今得到了長足的發展,但由于信號傳輸的鏈路瓶頸以及IC封鎖,夾縫中生長的國產示波器注定暫 ...… 查看全部問答∨ |
|
內容簡介 本書介紹的家庭電子小制作,適合于業余條件下制作。這些經精選的電子小裝置具有較強的趣味性和實用性,且與日常生活密切相關,如彩燈鏈、照明控制器、溫控器、電扇調整器、延時電路、電子門鈴、報警器、防盜器等。為了便于電子愛好者學習 ...… 查看全部問答∨ |
本帖最后由 jameswangsynnex 于 2015-3-3 19:58 編輯 手機已成為人們生活中不可缺少的通信工具。目前手機都是由可充電的鋰離子電池供電,在野外或無市電的情況下,手機隨時可能沒電,這給使用者帶來許多不便。 經研究人體與環境之間總是存在溫差 ...… 查看全部問答∨ |
在大型工業控制系統,軍事和航天系統,智能家居管理系統等較為復雜的系統中,許多情況下系統中存在著大量遵循不同協議的設備,例如遵循RS232、RS485、UDP、TCP/IP等協議的設備共同存在于系統中。多種協議并存時,要求系統能識別不同的協議信息,通 ...… 查看全部問答∨ |
|