精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

【GD32 MCU 入門(mén)教程】GD32 MCU 常見(jiàn)外設(shè)介紹(10)USART 模塊介紹

聚沃科技 ? 2024-08-19 09:25 ? 次閱讀

通用同步異步收發(fā)器(USART) 提供了一個(gè)靈活方便的串行數(shù)據(jù)交換接口,數(shù)據(jù)幀可以通過(guò)全雙工或半雙工,同步或異步的方式進(jìn)行傳輸。 USART提供了可編程的波特率發(fā)生器,能對(duì)UCLK(PCLK1或PCLK2) 進(jìn)行分頻產(chǎn)生USART發(fā)送和接收所需的特定頻率。

USART不僅支持標(biāo)準(zhǔn)的異步收發(fā)模式,還實(shí)現(xiàn)了一些其他類(lèi)型的串行數(shù)據(jù)交換模式,如紅外編碼規(guī)范, SIR,智能卡協(xié)議, LIN, 半雙工以及同步模式。它還支持多處理器通信和Modem流控操作(CTS/RTS)。數(shù)據(jù)幀支持從LSB或者M(jìn)SB開(kāi)始傳輸。數(shù)據(jù)位的極性和TX/RX引腳都可以靈活配置。部分USART支持DMA功能,以實(shí)現(xiàn)高速率的數(shù)據(jù)通信,支持情況根據(jù)不同芯片型號(hào)而定。

10.1.USART 基礎(chǔ)知識(shí)

通信方式的分類(lèi):并行通信、串行通信

  1. 并行通信:是指數(shù)據(jù)的各位同時(shí)在多根數(shù)據(jù)線(xiàn)上發(fā)送或接收,如圖所示。
輸入圖片說(shuō)明

并行通信的特點(diǎn):控制簡(jiǎn)單,傳輸速度快;由于傳輸線(xiàn)多,適用于距離近傳輸。

  1. 串行通信:是數(shù)據(jù)的各位在同一根數(shù)據(jù)線(xiàn)上依次逐位發(fā)送或接收,如圖所示
輸入圖片說(shuō)明

串行通信的特點(diǎn):控制復(fù)雜,傳輸速度較慢;只需要一根線(xiàn),適用于遠(yuǎn)距離傳輸。

串行通信方式的分類(lèi)

在串行通信中,根據(jù)對(duì)數(shù)據(jù)流的分界、定時(shí)及同步方法不同,可以分為同步串行通信方式和異步串行通信方式。

  1. 同步串行通信方式:把許多字符組成一個(gè)信息組,或稱(chēng)為信息幀,每幀的開(kāi)始用同步字符來(lái)指示。并且發(fā)送和接收的雙方必須采用同一時(shí)鐘,這樣接收方就可以用時(shí)鐘信號(hào)來(lái)確定每個(gè)信號(hào) 位。同步通信如圖所示:
輸入圖片說(shuō)明

同步通信:發(fā)送端和接收端必須使用統(tǒng)一時(shí)鐘,它是一種連續(xù)傳送數(shù)據(jù)的通信方式,一次通信傳送多個(gè)字符數(shù)據(jù),稱(chēng)為一幀信息。幀格式如圖所示:

輸入圖片說(shuō)明

同步串行通信幀:是將許多字符組成一個(gè)信息幀,這樣字符可以一個(gè)接一個(gè)的傳輸,但是,在每幀信息的開(kāi)始要加上同步字符,在沒(méi)有信息要傳輸時(shí),要填上空字符,因?yàn)橥絺鬏敳辉试S有間 隙。

同步串行通信特點(diǎn):必須有同步時(shí)鐘,傳輸信息量大,傳輸速率高,但是傳輸設(shè)備復(fù)雜,技術(shù)要求高。

  1. 異步串行通訊方式:是指通訊雙方以一個(gè)字符(包括特定附加位)作為數(shù)據(jù)傳輸單位且發(fā)送方傳送字符的間隔時(shí)間不一定,具有不規(guī)則數(shù)據(jù)段傳送特性的串行數(shù)據(jù)傳輸。異步串行通信如圖所示:
輸入圖片說(shuō)明

異步通信:是指發(fā)送和接收端使用各自的時(shí)鐘,并且它是一種不連續(xù)傳輸?shù)耐ㄐ欧绞剑淮瓮ㄐ胖粋饕粋€(gè)字符數(shù)據(jù),稱(chēng)為字符幀。字符幀之間的間隙可以是任意間隙。它的幀格式如圖所示:

輸入圖片說(shuō)明

異步串行通信幀:是將一個(gè)字節(jié)數(shù)據(jù)加上起始位、校驗(yàn)位、停止位,構(gòu)成的字符幀。由于異步通信沒(méi)有同步時(shí)鐘,所以接收端要時(shí)刻處于接收狀態(tài)。

起始位:在沒(méi)有數(shù)據(jù)傳送時(shí)即空閑狀態(tài),此時(shí)通信線(xiàn)上為邏輯“1”狀態(tài)。當(dāng)發(fā)送端要發(fā)送1個(gè)字符數(shù)據(jù)時(shí),首先發(fā)送一個(gè)邏輯“0”信號(hào),這個(gè)低電平就是幀格式的起始位。其作用就是告訴接收端開(kāi)始發(fā)送一幀數(shù)據(jù)。接收端檢測(cè)到這個(gè)低電平后,就準(zhǔn)備接收數(shù)據(jù)信號(hào)。

數(shù)據(jù)位:在起始位之后,發(fā)送端發(fā)出的就是數(shù)據(jù)位,數(shù)據(jù)位的位數(shù)沒(méi)有嚴(yán)格限制5~9位都行。低位在前,高位在后,由低位到高位逐位傳送。USART一般是8位。

校驗(yàn)位:數(shù)據(jù)位發(fā)送完成之后,可發(fā)送一位用來(lái)檢驗(yàn)數(shù)據(jù)在傳送過(guò)程中是否出錯(cuò)的奇偶校驗(yàn)位。奇偶校驗(yàn)是收發(fā)雙方預(yù)先約定好的有限差錯(cuò)檢驗(yàn)方式之一。有時(shí)也可以無(wú)校驗(yàn)。

停止位:字符幀格式的最后部分是停止位,邏輯“1”電平有效,它可占1/2位、1位、1.5位或2位。停止位表示傳送一幀信息的結(jié)束,也為發(fā)送下一幀信息做好準(zhǔn)備。

異步串行通信特點(diǎn):不需要時(shí)鐘同步,通信實(shí)現(xiàn)簡(jiǎn)單,設(shè)備開(kāi)銷(xiāo)小。但是傳輸速率不高。

串行通信數(shù)據(jù)傳送方向

根據(jù)串行數(shù)據(jù)的傳輸方向,我們可以將通信分為單工、半雙工、全雙工。

單工:是指數(shù)據(jù)傳輸僅能沿一個(gè)方向,不能實(shí)現(xiàn)反向傳輸。

半雙工:是指數(shù)據(jù)傳輸可以沿兩個(gè)方向,但需要分時(shí)進(jìn)行傳輸。

全雙工:是指數(shù)據(jù)可以同時(shí)進(jìn)行雙向傳輸。

串行通信數(shù)據(jù)的傳輸方向

輸入圖片說(shuō)明

10.2.GD32 USART 外設(shè)原理簡(jiǎn)介

GD32芯片具有多個(gè)USART外設(shè)用于串口通訊,它是 Universal Synchronous Asynchronous Receiver and Transmitter的縮寫(xiě),即通用同步異步收發(fā)器可以靈活地與外部設(shè)備進(jìn)行全雙工數(shù)據(jù) 交換。有別于USART,它還有具有UART外設(shè)(Universal Asynchronous Receiver and Transmitter),它是在USART基礎(chǔ)上裁剪掉了同步通信功能,只有異步通信。簡(jiǎn)單區(qū)分同步和異步就是看通信時(shí)需不需要對(duì)外提供時(shí)鐘輸出。

因篇幅有限,本文無(wú)法詳細(xì)介紹GD32所有系列USART外設(shè)接口,下面以GD32F30x為列,著重介紹下GD32F30x的USART外設(shè)簡(jiǎn)介和結(jié)構(gòu)框圖,后介紹下各個(gè)系列的差異。

GD32 USART 主要特性

? NRZ標(biāo)準(zhǔn)格式(Mark/Space)。

? 全雙工異步通信。

? 可編程的波特率產(chǎn)生器:

– 由外設(shè)時(shí)鐘分頻產(chǎn)生,其中USART0由PCLK2分頻得到,USART1/2和UART3/4由PCLK1分頻得到;

– 16倍過(guò)采樣;

– 當(dāng)時(shí)鐘頻率為120M,過(guò)采樣為16,最高速度可到7.5MBits/s。

? 完全可編程的串口特性:

– 偶校驗(yàn)位,奇校驗(yàn)位,無(wú)校驗(yàn)位的生成/檢測(cè);

– 數(shù)據(jù)位(8或9位);

– 產(chǎn)生0.5,1,1.5或者2個(gè)停止位。

? 發(fā)送器和接收器可分別使能。

? 支持硬件Modem流控操作(CTS/RTS)。

? DMA訪問(wèn)數(shù)據(jù)緩沖區(qū)。

? LIN斷開(kāi)幀的產(chǎn)生和檢測(cè)。

? 支持紅外數(shù)據(jù)協(xié)議(IrDA)。

? 同步傳輸模式以及為同步傳輸輸出發(fā)送時(shí)鐘。

? 支持兼容ISO7816-3的智能卡接口:

– 字節(jié)模式(T=0);

– 塊模式(T=1);

– 直接和反向轉(zhuǎn)換。

? 多處理器通信:

– 如果地址不匹配,則進(jìn)入靜默模式;

– 通過(guò)線(xiàn)路空閑檢測(cè)或者地址掩碼檢測(cè)從靜默模式喚醒。

? 多種狀態(tài)標(biāo)志:

– 傳輸檢測(cè)標(biāo)志:接收緩沖區(qū)不為空(RBNE),發(fā)送緩沖區(qū)為空(TBE),傳輸完成(TC),忙(BSY);

– 錯(cuò)誤檢測(cè)標(biāo)志:過(guò)載錯(cuò)誤(ORERR),噪聲錯(cuò)誤(NERR),幀格式錯(cuò)誤(FERR),奇偶校驗(yàn)錯(cuò)誤(PERR);

– 硬件流控操作標(biāo)志:CTS變化(CTSF);

– LIN模式標(biāo)志:LIN斷開(kāi)檢測(cè)(LBDF);

– 多處理器通信模式標(biāo)志:IDLE幀檢測(cè)(IDLEF);

– 智能卡模式標(biāo)志:塊結(jié)束(EBF)和接收超時(shí)(RTF);

– 若相應(yīng)的中斷使能,這些事件發(fā)生將會(huì)觸發(fā)中斷。

USART0/1/2完全實(shí)現(xiàn)上述功能,但是UART3/4只實(shí)現(xiàn)了上面所介紹的部分功能,下面這些功能在UART3/4中沒(méi)有實(shí)現(xiàn):

? 智能卡模式;

? 同步模式;

? 硬件流操作(CTS/RTS);

? 設(shè)置數(shù)據(jù)極性。

USART 結(jié)構(gòu)框圖

輸入圖片說(shuō)明

USART 功能引腳:

TX:發(fā)送數(shù)據(jù)輸出引腳

SW_RX:數(shù)據(jù)接收引腳,只用于單線(xiàn)和智能卡模式,屬于內(nèi)部腳,沒(méi)有具體的外部引腳。

RX:接收數(shù)據(jù)輸入引腳

nRTS:請(qǐng)求以發(fā)送(Request To Send),n表示低電平有效。如果使能RTS流控制,當(dāng)USART接收器準(zhǔn)備好接收新數(shù)據(jù)時(shí)就會(huì)將nRTS變成低電平;當(dāng)接收寄存器已滿(mǎn)時(shí),nRTS將被設(shè)置為高電平。該引腳只適用于硬件流控制。

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

CK:發(fā)送器時(shí)鐘輸出引腳。這個(gè)引腳僅適用于同步模式。具體各系列USART引腳對(duì)應(yīng),可見(jiàn)相應(yīng)的Datasheet。

波特率發(fā)生器:如圖 0-36 USART結(jié)構(gòu)框圖的②所示,波特率分頻系數(shù)是一個(gè)16位的數(shù)字,包含12位整數(shù)部分和4位小數(shù)部分。波特率發(fā)生器使用這兩部分組合所得的數(shù)值來(lái)確定波特率。由于具有小數(shù)部分的波特率分頻系數(shù),將使USART能夠產(chǎn)生所有標(biāo)準(zhǔn)波特率。

波特率分頻系數(shù)(USARTDIV) 與系統(tǒng)時(shí)鐘具有如下關(guān)系:

輸入圖片說(shuō)明

USART0的系統(tǒng)時(shí)鐘為PCLK2,USART1/2和UART3/4的系統(tǒng)時(shí)鐘為PCLK1。在使能USART之前,必須在時(shí)鐘控制單元使能系統(tǒng)時(shí)鐘。

控制器:如USART結(jié)構(gòu)框圖所示,USART有專(zhuān)門(mén)控制發(fā)送的發(fā)送器、控制接收的接收器,還有喚醒單元、中斷控制等等。使用USART之前需要向USART_CTL0寄存器的UEN位置1使能USART。發(fā)送或者接收數(shù)據(jù)字長(zhǎng)可選8位或9位,由USART_CTL0的WL位控制。

數(shù)據(jù)寄存器:如USART結(jié)構(gòu)框圖所示,USART數(shù)據(jù)寄存器(USART_DATA)只有低9位有效,并且第9位數(shù)據(jù)是否有效要取決于USART控制寄存器1(USART_CTL0)的WL位設(shè)置,當(dāng)WL位為0時(shí)表示8位數(shù)據(jù)字長(zhǎng),當(dāng)WL位為1表示9位數(shù)據(jù)字長(zhǎng),我們一般使用8位數(shù)據(jù)字長(zhǎng)。USART_DATA包含了已發(fā)送的數(shù)據(jù)或者接收到的數(shù)據(jù)。USART_DATA實(shí)際是包含了兩個(gè)寄存器,一個(gè)專(zhuān)門(mén)用于發(fā)送的可寫(xiě)TDATA,一個(gè)專(zhuān)門(mén)用于接收的可讀RDATA。當(dāng)進(jìn)行發(fā)送操作時(shí),往USART_DATA寫(xiě)入數(shù)據(jù)會(huì)自動(dòng)存儲(chǔ)在TDATA內(nèi);當(dāng)進(jìn)行讀取操作時(shí),向USART_DATA讀取數(shù)據(jù)會(huì)自動(dòng)提取RDATA數(shù)據(jù)。

TDATA和RDATA都是介于系統(tǒng)總線(xiàn)和移位寄存器之間。串行通信是一個(gè)位一個(gè)位傳輸?shù)模l(fā)送時(shí)把TDATA內(nèi)容轉(zhuǎn)移到發(fā)送移位寄存器,然后把移位寄存器數(shù)據(jù)每一位發(fā)送出去,接收時(shí)把接收到的每一位順序保存在接收移位寄存器內(nèi)然后才轉(zhuǎn)移到RDATA。

USART支持DMA傳輸,可以實(shí)現(xiàn)高速數(shù)據(jù)傳輸。

校驗(yàn)控制:GD32系列控制器USART支持奇偶校驗(yàn)。當(dāng)使用校驗(yàn)位時(shí),串口傳輸?shù)拈L(zhǎng)度將是8位的數(shù)據(jù)幀加上1位的校驗(yàn)位總共9位,此時(shí)USART_CTL0寄存器的WL位需要設(shè)置為1,即9數(shù)據(jù)位。將USART_CTL0寄存器的PCEN位置1就可以啟動(dòng)奇偶校驗(yàn)控制,奇偶校驗(yàn)由硬件自動(dòng)完成。啟動(dòng)了奇偶校驗(yàn)控制之后,在發(fā)送數(shù)據(jù)幀時(shí)會(huì)自動(dòng)添加校驗(yàn)位,接收數(shù)據(jù)時(shí)自動(dòng)驗(yàn)證校驗(yàn)位。接收數(shù)據(jù)時(shí)如果出現(xiàn)奇偶校驗(yàn)位驗(yàn)證失敗,會(huì)見(jiàn)USART_STAT0寄存器的PERR位置1,并可以產(chǎn)生奇偶校驗(yàn)中斷。

使能了奇偶校驗(yàn)控制后,每個(gè)字符幀的格式將變成:起始位+數(shù)據(jù)幀+校驗(yàn)位+停止位。

中斷控制:USART有多個(gè)中斷請(qǐng)求事件,具體可見(jiàn)所示。

各系列 USART 功能差異 GD32系列MCU有關(guān)USART外設(shè)各系列功能差異如GD32各系列MCU USART外設(shè)功能差異表所示。

GD32 各系列 MCU USART 外設(shè)功能差異表

輸入圖片說(shuō)明

10.3.硬件連接說(shuō)明

為利用USART實(shí)現(xiàn)開(kāi)發(fā)板與電腦通信,需要用到一個(gè)USB轉(zhuǎn)USART的IC,我們選擇CH340G芯片來(lái)實(shí)現(xiàn)這個(gè)功能,CH340G是一個(gè)USB總線(xiàn)的轉(zhuǎn)接芯片,實(shí)現(xiàn)USB轉(zhuǎn)USART、USB轉(zhuǎn)IrDA紅外或者USB轉(zhuǎn)打印機(jī)接口,我們使用其USB轉(zhuǎn)USART功能。具體電路設(shè)計(jì)見(jiàn)下圖USB轉(zhuǎn)串口硬件設(shè)計(jì)。

我們將CH340G的TXD引腳與USART的RX引腳連接,CH340G的RXD引腳與USART的TX引腳連接。

輸入圖片說(shuō)明

5.10.4.軟件配置說(shuō)明

本小節(jié)講解USART_Example歷程中USART模塊的配置說(shuō)明,主要包括外設(shè)時(shí)鐘配置、GPIO引腳 配置、USART外設(shè)配置、主函數(shù)介紹以及運(yùn)行結(jié)果。本例程主要介紹GD32 MCU各系列USART 模塊的輪詢(xún)發(fā)送中斷接收,有關(guān)USART其他功能例程可參考各系列固件庫(kù)歷程。 USART 外設(shè)配置

USART外設(shè)配置如代碼清單USART例程USART外設(shè)配置所示。首先是對(duì)各項(xiàng)外設(shè)時(shí)鐘初始化,接著初始化GPIO:GD32F10X、GD32F30X、GD32F20X、GD32E10X系列GPIO配置相同,PA9配置為復(fù)用推挽輸出;PA10需配置為浮空輸入。GD32F1X0、GD32F4XX、GD32F3X0、GD32E23X系列GPIO配置基本相同,不同在于PA9/PA10引腳的AF復(fù)用功能配置不同,在GD32F1X0、GD32F3X0和GD32E23X上,需要配置為AF1模式,在GD32F4XX上需要配置為AF7模式。然后配置USART接收中斷優(yōu)先級(jí)分組。最后配置USART初始化:GD32全系列MCU中USART外設(shè)配置基本相同,在本例程中,USART既可以發(fā)送可以接收,GD32標(biāo)準(zhǔn)庫(kù)提供了USART各項(xiàng)初始化的函數(shù)接口,其初始化函數(shù)接口說(shuō)明如USART函數(shù)說(shuō)明列表所示。因USART使用了C函數(shù)的printf函數(shù),所以重定向了printf到USART,還得在KEIL的魔術(shù)棒Target配置下打開(kāi)” Use MicroLIB”。

代碼清單 USART 例程 USART 外設(shè)配置

void usart_init(void) { rcu_periph_clock_enable(RCU_GPIOA); rcu_periph_clock_enable(RCU_USART0); #if defined GD32F10X_HD || GD32F30X_HD || GD32F20X_CL || GD32E10X rcu_periph_clock_enable(RCU_AF); /* connect port to USARTx_Tx */ gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9); /* connect port to USARTx_Rx */ gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10); nvic_irq_enable(USART0_IRQn, 2U, 0U); #elif defined GD32F1X0 || GD32F4XX || GD32F3X0 || GD32E230 #if defined GD32F1X0 || GD32F3X0 || GD32E230 /* connect port to USARTx_Tx USARTx_Rx*/ gpio_af_set(GPIOA, GPIO_AF_1, GPIO_PIN_9 | GPIO_PIN_10 ); #elif defined GD32F4XX gpio_af_set(GPIOA, GPIO_AF_7, GPIO_PIN_9 | GPIO_PIN_10 ); #endif #if defined GD32F1X0 || GD32F3X0 || GD32F4XX nvic_irq_enable(USART0_IRQn, 2U, 0U); #elif defined GD32E230 nvic_irq_enable(USART0_IRQn, 2U); #endif /* configure USART Tx as alternate function push-pull */ gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_9); gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9); /* configure USART Rx as alternate function push-pull */ gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_10); gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_10); #endif /* USART configure */ usart_deinit(USART0); usart_baudrate_set(USART0, 115200U); usart_word_length_set(USART0, USART_WL_8BIT); usart_stop_bit_set(USART0, USART_STB_1BIT); usart_parity_config(USART0, USART_PM_NONE); usart_hardware_flow_rts_config(USART0, USART_RTS_DISABLE); usart_hardware_flow_cts_config(USART0, USART_CTS_DISABLE); usart_receive_config(USART0, USART_RECEIVE_ENABLE); usart_transmit_config(USART0, USART_TRANSMIT_ENABLE); usart_enable(USART0); } /* retarget the C library printf function to the USART */ int fputc(int ch, FILE *f) { usart_data_transmit(USART0, (uint8_t)ch); while (RESET == usart_flag_get(USART0, USART_FLAG_TBE)); return ch; }

USART 函數(shù)說(shuō)明列表

輸入圖片說(shuō)明

中斷函數(shù)

中斷函數(shù)如代碼清單 USART 中斷函數(shù)所示,GD32 所有函數(shù)中斷接收函數(shù)相同:先檢測(cè) USART_INT_FLAG_RBNE 置 1 時(shí),執(zhí)行數(shù)據(jù)接收,當(dāng)數(shù)據(jù)接收到設(shè)定的位數(shù)后,關(guān)閉 USART 接收中斷。

void USART0_IRQHandler(void) { if(RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_RBNE)){ /* receive data */ rxbuffer[rxcount++] = usart_data_receive(USART0); if(rxcount == rx_size){ usart_interrupt_disable(USART0, USART_INT_RBNE); } } }

主函數(shù)說(shuō)明 主函數(shù)如代碼清單USART例程主函數(shù)所示,該主函數(shù)主要分成三個(gè)部分,USART初始化、USART 輪詢(xún)發(fā)送 buffer 、 開(kāi)啟中斷接收 buffer 當(dāng) 數(shù) 據(jù) 接 收 完 成 時(shí) 執(zhí) 行 printf 打 印函數(shù):printf("\n\rUSART receive successfully!\n\r");。

int main(void) { usart_init(); printf("GD32 WELCOME"); while(txcount

運(yùn)行結(jié)果 將USART_Example例程按照對(duì)應(yīng)的芯片工程編譯完成后,下載到對(duì)應(yīng)芯片中,采用USB轉(zhuǎn)USART連接電腦,使用串口助手,可查看MCU發(fā)送的結(jié)果,電腦發(fā)送數(shù)據(jù)MCU返回的結(jié)果。

具體可如下圖USART運(yùn)行結(jié)果所示。

輸入圖片說(shuō)明

10.5.USART 使用注意事項(xiàng)

(1) 使用 USART,收發(fā)都是 DMA 方式,由于接受數(shù)據(jù)幀長(zhǎng)度不固定,可以采用 USART Receive timeout 標(biāo)志作為 USART DMA 接收完成標(biāo)志,采用 TC 作為 USART DMA 發(fā)送完成標(biāo)志。

(2) USART 只要發(fā)送寄存器為空,就會(huì)一直有中斷,因此,要是不發(fā)送數(shù)據(jù)時(shí),在 USART中斷處理函數(shù)中把發(fā)送中斷關(guān)閉,只在開(kāi)始發(fā)送時(shí)才打開(kāi);接收同理

教程GD32 MCU方案商聚沃科技原創(chuàng)發(fā)布,了解更多GD32 MCU教程,關(guān)注聚沃科技官網(wǎng)

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

    關(guān)注

    6017

    文章

    44264

    瀏覽量

    626647
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16498

    瀏覽量

    346671
  • 嵌入式
    +關(guān)注

    關(guān)注

    5031

    文章

    18673

    瀏覽量

    296145
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4701

    瀏覽量

    95715
  • USART
    +關(guān)注

    關(guān)注

    1

    文章

    195

    瀏覽量

    30596
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    GD32 MCU 入門(mén)教程GD32 MCU 常見(jiàn)外設(shè)介紹(12)FMC 模塊介紹

    閃存控制器(FMC),提供了片上閃存需要的所有功能。FMC 也提供了頁(yè)擦除,整片擦除,以及32 位整字或 16 位半字編程閃存等操作。 GD32 MCU 支持不同類(lèi)型編程的具體說(shuō)明如下表 GD32
    的頭像 發(fā)表于 08-21 09:56 ?281次閱讀
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>入門(mén)教程</b>】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>常見(jiàn)外設(shè)</b><b class='flag-5'>介紹</b>(12)FMC <b class='flag-5'>模塊</b><b class='flag-5'>介紹</b>

    GD32 MCU移植

    gd32是一款國(guó)產(chǎn)單片機(jī)。該芯片在很多方面和STM32有異曲同工之處。資料不是很多! GD32外設(shè)方面、和STM32沒(méi)有多大區(qū)別。 只是需要注意資源的引腳分配。雖然和STM32使用方式一樣、但是也存在
    發(fā)表于 03-23 13:40

    GD32MCU介紹

    其實(shí)兆芯的MCU為了兼容ST,外設(shè)的寄存器設(shè)計(jì)與ST保持一致了。比如GD32VF103或者GD32E103系列的USBFS這個(gè)外設(shè),基本等同
    發(fā)表于 11-01 06:03

    GD32 MCU原理及固件庫(kù)開(kāi)發(fā)指南》 + 初讀感悟

    GD32 MCU原理固件庫(kù)開(kāi)發(fā)指南這本書(shū)內(nèi)容豐富,囊括了GD32中的所有外設(shè),書(shū)中首先介紹了如何使用MDK或IAR軟件搭建
    發(fā)表于 03-31 22:11

    GD32 MCU原理及固件庫(kù)開(kāi)發(fā)指南》+讀后感

    ,包括ADC和DAC。 第7章介紹GD32 MCU的基礎(chǔ)通信外設(shè),包括USART、I2C和SPI。 第8章
    發(fā)表于 06-06 21:52

    推出采用GD32 RISC-V的MCU

    推出采用GD32 RISC-V的MCU ppt分享
    發(fā)表于 07-14 17:15 ?0次下載

    兆易創(chuàng)新GD32 MCU選型手冊(cè),適用于GD32全系列MCU

    兆易創(chuàng)新GD32MCU選型手冊(cè),適用于GD32全系列MCUGD32MCU選型手冊(cè),適用于GD32全系列MCU
    發(fā)表于 10-19 17:26 ?47次下載

    你了解GD32 MCU的命名規(guī)則嗎

    下面為大家介紹GD32 MCU的通用命名規(guī)則,以GD32F303ZGT6為例,其中,GD32代表GD32
    的頭像 發(fā)表于 01-13 09:38 ?2869次閱讀
    你了解<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>的命名規(guī)則嗎

    GD32 MCU的選項(xiàng)字節(jié)是什么?

    GD32 MCU的選項(xiàng)字節(jié)是什么,有什么功能呢?選項(xiàng)字節(jié)被誤篡改如何回復(fù)?
    的頭像 發(fā)表于 01-17 09:42 ?917次閱讀
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>的選項(xiàng)字節(jié)是什么?

    不同型號(hào)的GD32 MCU如何區(qū)分?

    大家是否碰到過(guò)以下應(yīng)用場(chǎng)景:同一套軟件代碼希望跑在不同型號(hào)的GD32 MCU中,但有些地方需要根據(jù)MCU型號(hào)進(jìn)行調(diào)整?或者上位機(jī)或其他MCUGD3
    的頭像 發(fā)表于 01-27 09:32 ?700次閱讀
    不同型號(hào)的<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>如何區(qū)分?

    GD32 MCU ISP失敗的原因

    玩過(guò)GD32的小伙伴們都知道,GD32 MCU支持ISP,即在系統(tǒng)編程,前面的常見(jiàn)問(wèn)題也給大家講過(guò)什么是ISP,什么是IAP?那有沒(méi)有小伙伴遇到過(guò)ISP失敗的情況,失敗的原因是什么呢?
    的頭像 發(fā)表于 02-28 09:23 ?1073次閱讀
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> ISP失敗的原因

    GD32 MCU 入門(mén)教程】一、GD32 MCU 開(kāi)發(fā)環(huán)境搭建(1)使用Keil開(kāi)發(fā)GD32

    GD32系列為通用型MCU,所以開(kāi)發(fā)環(huán)境也可以使用通用型的IDE,目前使用較多的是KEIL、IAR、 GCC和Embedded Builder,客戶(hù)可以根據(jù)個(gè)人喜好來(lái)選擇相應(yīng)的開(kāi)發(fā)環(huán)境。
    的頭像 發(fā)表于 08-08 15:01 ?267次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>入門(mén)教程</b>】一、<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 開(kāi)發(fā)環(huán)境搭建(1)使用Keil開(kāi)發(fā)<b class='flag-5'>GD32</b>

    GD32 MCU 入門(mén)教程】一、GD32 MCU 開(kāi)發(fā)環(huán)境搭建(2)使用 IAR 開(kāi)發(fā) GD32

    GD32系列為通用型MCU,所以開(kāi)發(fā)環(huán)境也可以使用通用型的IDE,目前使用較多的是KEIL、IAR、 GCC和Embedded Builder,客戶(hù)可以根據(jù)個(gè)人喜好來(lái)選擇相應(yīng)的開(kāi)發(fā)環(huán)境。
    的頭像 發(fā)表于 08-08 15:40 ?159次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>入門(mén)教程</b>】一、<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 開(kāi)發(fā)環(huán)境搭建(2)使用 IAR 開(kāi)發(fā) <b class='flag-5'>GD32</b>

    GD32 MCU 入門(mén)教程】一、GD32 MCU 開(kāi)發(fā)環(huán)境搭建(3)使用 Embedded Builder 開(kāi)發(fā) GD32

    GD32系列為通用型MCU,所以開(kāi)發(fā)環(huán)境也可以使用通用型的IDE,目前使用較多的是KEIL、IAR、 GCC和Embedded Builder,客戶(hù)可以根據(jù)個(gè)人喜好來(lái)選擇相應(yīng)的開(kāi)發(fā)環(huán)境。
    的頭像 發(fā)表于 08-08 16:03 ?278次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>入門(mén)教程</b>】一、<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 開(kāi)發(fā)環(huán)境搭建(3)使用 Embedded Builder 開(kāi)發(fā) <b class='flag-5'>GD32</b>

    GD32 MCU 入門(mén)教程】二、GD32 MCU 燒錄說(shuō)明(1)ISP 燒錄

    ISP:In System Programing,在系統(tǒng)編程,通過(guò)MCU片內(nèi)的引導(dǎo)程序進(jìn)行Flash編程。 GD32片內(nèi)有一個(gè)只讀信息塊,用于存放引導(dǎo)裝載程序,引導(dǎo)程序在MCU出廠前就會(huì)提前燒錄好
    的頭像 發(fā)表于 08-08 16:20 ?209次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>入門(mén)教程</b>】二、<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 燒錄說(shuō)明(1)ISP 燒錄