當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]初學(xué)stm32,初次接觸USART串口通信。對USART通信硬件原理的個(gè)人總結(jié)。從MCU(Micro Controller Unit,也就是ST芯片)出來的TTL電平經(jīng)過電平轉(zhuǎn)換芯片轉(zhuǎn)化為USB電平,從而實(shí)現(xiàn)與PC的通信。USART(Universal Synchronous

初學(xué)stm32,初次接觸USART串口通信。

對USART通信硬件原理的個(gè)人總結(jié)。從MCU(Micro Controller Unit,也就是ST芯片)出來的TTL電平經(jīng)過電平轉(zhuǎn)換芯片轉(zhuǎn)化為USB電平,從而實(shí)現(xiàn)與PC的通信。

USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/異步串行接收/發(fā)送器。

這邊只作異步通信說,異步通信與同步通信的主要區(qū)別區(qū)別是時(shí)鐘,所以這邊的SLCK是關(guān)閉的。USART總共有TX、RX、nRTS、nCTS、SCLK這5個(gè)外接引腳(框圖中的SW_RX在內(nèi)部,n表示低電平有效)。在學(xué)習(xí)與PC上位機(jī)通信時(shí),是關(guān)閉硬件流控制模式的,所以異步通信只涉及到TX(Transmit)和RX(Receive)這兩個(gè)引腳。

大致思路:數(shù)據(jù)由軟件傳給發(fā)送數(shù)據(jù)寄存器USART_DR(TRD),判斷TC(Transmit complete,發(fā)送完成)是否置1。若置1,表示發(fā)送移位寄存器發(fā)送完成,發(fā)送數(shù)據(jù)寄存器中的數(shù)據(jù)發(fā)送到發(fā)送移位寄存器開始發(fā)送,判斷TXE(Transmit data register empty,發(fā)送數(shù)據(jù)寄存器為空),讀取下一個(gè)數(shù)據(jù)到TDR;若TC為0,則等待。TC置0由軟件序列(讀取USART_SR寄存器,然后寫入U(xiǎn)SART_DR寄存器),也可以向該位寫“”0“”實(shí)現(xiàn)。硬件復(fù)位時(shí),TC由硬件置1。

接收數(shù)據(jù)時(shí),數(shù)據(jù)傳入接收移位寄存器,再傳入讀取數(shù)據(jù)寄存器,這時(shí)RXNE(Read data register not empty,讀取數(shù)據(jù)寄存器不為空)置1,可產(chǎn)生中斷標(biāo)志RXNEIE。

數(shù)據(jù)格式:1位起始位,8位數(shù)據(jù)位(USART_CR1,控制寄存器1中的位12-M置0),無校驗(yàn)位(USART_SR,狀態(tài)寄存器中位1-PE置0——無奇偶校驗(yàn)錯(cuò)誤),1位停止位(USART_CR2,控制寄存器2中位13:12-STOP賦值00)。因?yàn)槭情_發(fā)板與PC機(jī)之間的通信,距離短,通信環(huán)境好,所以不設(shè)置奇偶校驗(yàn)。

使用的是USART1,TX選擇的是PA9,RX選擇的是PA10。

代碼流程:1、初始化 a、打開外設(shè)時(shí)鐘(如果想使用任何外設(shè),都要先使能時(shí)鐘),打開掛載到AHB1上的GPIOA和掛載到APB2上的USART1的時(shí)鐘,調(diào)用固件庫函數(shù)RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE)和RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE)

b、初始化串口相關(guān)的GPIO口,對GPIO_InitTypeDef GPIO_InitStruct結(jié)構(gòu)體進(jìn)行賦值,再通過GPIO_Init(GPIOA,&GPIO_InitStruct)映射給寄存器

c、配置選擇復(fù)用功能,調(diào)用固件庫函數(shù)GPIO_PinAFConfig(形參,形參,形參)確定引腳的復(fù)用功能

d、初始化串口,USART初始化結(jié)構(gòu)體,設(shè)置波特率、數(shù)據(jù)位長度、停止位、校驗(yàn)位選擇、硬件流控制模式選擇、USART模式控制(使能接收/發(fā)送),最后通過USART_Init(...)完成配置

e、如果需要中斷執(zhí)行服務(wù),則初始化NVIC(嵌套向量中斷控制器),若不需要,則跳過

f、使能串口,調(diào)用USART_Cmd(.....)使能USART1

2、編寫數(shù)據(jù)發(fā)送函數(shù),由于USART_DR只有8位有效,所以這里分為字節(jié)發(fā)送、雙字節(jié)發(fā)送、字符串發(fā)送、數(shù)組發(fā)送,這四種發(fā)送均基于固件庫函數(shù)USART_SendData(...),在發(fā)一個(gè)字節(jié)時(shí),判斷TXE是否為1,若為1,則準(zhǔn)備發(fā)送下一個(gè)數(shù)據(jù)至發(fā)送數(shù)據(jù)寄存器;若為0,則等待。獲取中斷狀態(tài)位的固件庫函數(shù)為ITStatus USART_GetITStatus(...),最后可以加以判斷TC是否為1,即判斷發(fā)送是否完成。

3、編寫數(shù)據(jù)接收函數(shù),調(diào)用固件庫函數(shù)USART_ReceiveData(...)獲取最新的USARTx的數(shù)據(jù)。判斷RXNE,為1表示接收完成,為0表示未接收數(shù)據(jù),所以數(shù)據(jù)接收函數(shù)的內(nèi)容應(yīng)該在判斷RXNE為1的條件下編寫。

4、main()函數(shù)調(diào)用即可。

根據(jù)野火教程,參考手冊,新手理解,純粹為個(gè)人重新回憶一遍。若有不對,還請指出,若寫的不好,好多見諒。

作為新手,還有諸多問題不懂,1、如果設(shè)置奇偶校驗(yàn),那接收方是不是應(yīng)該要處理?如何處理?如果說單片機(jī)與PC通信是這樣,那單片機(jī)與單片機(jī)呢?

2、發(fā)送8位的數(shù)據(jù)要寫一個(gè)函數(shù),發(fā)送16位的又要寫一個(gè)函數(shù),發(fā)送數(shù)組只能發(fā)送8字節(jié)類型的數(shù)組,可能是我認(rèn)識(shí)還不夠,對我來說是不明白。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉