PIC32MZEF一共有6個(gè)UART端口,資源還是比較豐富的。UART是比較常用的外設(shè),特別是在調(diào)試的時(shí)候,串口打印信息很方便,測(cè)試起來(lái)很方便,這篇就來(lái)測(cè)試一下UART數(shù)據(jù)的發(fā)送和中斷接收。
先來(lái)看看板卡原理圖中的引腳接口,UART1和UART2都引出到接插件了,但是UART2的引腳用作OLED驅(qū)動(dòng)使用了,我們就來(lái)測(cè)試UART1吧。


UART模塊的主要特性有:
? 全雙工8位或9位數(shù)據(jù)發(fā)送
? 偶校驗(yàn)、奇校驗(yàn)或無(wú)奇偶校驗(yàn)選項(xiàng)(對(duì)于8位數(shù)據(jù))
? 一個(gè)或兩個(gè)停止位
? 硬件自動(dòng)波特率特性
? 硬件流控制選項(xiàng)
? 完全集成的波特率發(fā)生器(Baud Rate Generator,BRG),具有16位預(yù)分頻器
? 在100 MHz時(shí),波特率范圍為76 bps至25 Mbps(PBCLK2)
?8級(jí)深先進(jìn)先出(First-In-First-Out,F(xiàn)IFO)發(fā)送數(shù)據(jù)緩沖區(qū)
?8級(jí)深FIFO接收數(shù)據(jù)緩沖區(qū)
? 奇偶校驗(yàn)、幀和緩沖區(qū)溢出錯(cuò)誤檢測(cè)
? 支持僅在地址檢測(cè)時(shí)中斷(第9位 = 1)
? 獨(dú)立的發(fā)送和接收中斷
? 用于診斷支持的環(huán)回模式
?LIN協(xié)議支持
?IrDA編碼器和解碼器,具有用于支持外部IrDA編碼器/解碼器的16倍頻波特率時(shí)鐘輸出
先來(lái)看看UART的內(nèi)部框圖

下面詳細(xì)說(shuō)一下UART的配置。打開(kāi)MHC,打開(kāi)HarmonyFramework Configuration》Drivers》USART。在“Use USARTDrive?”之前的選擇框中打勾。使能UART外設(shè)功能。

1,Driver Implementation:這個(gè)有動(dòng)態(tài)和靜態(tài)的可以,我們這里選擇動(dòng)態(tài)的。
2,中斷模式選擇使能,這里打鉤,表示使能中斷。
3,Number of USART Driver Instances:選擇需要的USART實(shí)例的數(shù)量,根據(jù)“Number of USART Driver Instances” 對(duì)話框中的數(shù)量,會(huì)產(chǎn)生“USARTDriver Instance N”(N = 0,1,2…)。
展開(kāi)“USART Driver Instance N”(N = 0,1,2…),根據(jù)應(yīng)用的需要,對(duì)每個(gè)USART實(shí)例的靜態(tài)驅(qū)動(dòng)程序進(jìn)行配置。
4,USART Module ID:選擇ID1,就是使用的UART1,這里可以選擇1-6。
5,Buad Rate:波特率設(shè)置,這里我們?cè)O(shè)置為19200
6,發(fā)送中斷優(yōu)先級(jí)設(shè)置,發(fā)送我一般使用查詢方式,而接收使用中斷方式,所以這里發(fā)送選擇禁止中斷。
7,接收中斷優(yōu)先級(jí)設(shè)置,InterruptPriority和Interrupt Sub-priority這兩項(xiàng)是選擇中斷優(yōu)先級(jí)。每個(gè)向量有7個(gè)用戶可選的優(yōu)先級(jí),每個(gè)優(yōu)先級(jí)內(nèi)有4個(gè)用戶可選的次優(yōu)先級(jí)。
8,Operation Mode:模式選擇,模式有IrDA模式,正常模式,地址檢測(cè)模式,環(huán)回模式。我們選擇正常模式就可以了。
9,Line Control:數(shù)據(jù)格式選擇,數(shù)據(jù)位有8,9位,校驗(yàn)有奇校驗(yàn),偶校驗(yàn),無(wú)校驗(yàn),停止位有1,2位。我們選擇N81數(shù)據(jù)格式。
10,Handshake Mode:握手模式,有單工模式,流控制模式和正常模式。我們選擇正常模式。
11,Power State:用來(lái)選擇UART可以運(yùn)行在哪些節(jié)能模式下,這里選擇FULL表示所有模式下都可以運(yùn)行。
打開(kāi)引腳設(shè)置窗口,進(jìn)行48,69兩個(gè)引腳設(shè)置,設(shè)置成UART引腳


點(diǎn)擊生成代碼,選擇自動(dòng)覆蓋以前的程序

看了生成后新的工程文件

在APP.H文件里增加一些變量定義

還是把中斷函數(shù)直接移到APP.C下面,再編寫(xiě)程序。下篇的話再介紹如何使用回調(diào)函數(shù)進(jìn)行程序的編寫(xiě)。App.c中增加函數(shù),程序。程序收到一個(gè)字節(jié)數(shù)據(jù)后立馬回發(fā),并在顯示屏上顯示接收到的字節(jié)數(shù)



上位機(jī)測(cè)試軟件,上電后先發(fā)個(gè)55,AA

顯示效果和硬件接線,直接使用的是TTL轉(zhuǎn)USB轉(zhuǎn)接頭

-
uart
+關(guān)注
關(guān)注
22文章
1314瀏覽量
106630
發(fā)布評(píng)論請(qǐng)先 登錄
uart數(shù)據(jù)收發(fā)不成功
如何去實(shí)現(xiàn)UART阻塞方式收發(fā)數(shù)據(jù)呢
淺談HAL庫(kù)uart數(shù)據(jù)收發(fā)與部分源碼
實(shí)測(cè)ch554_uart_2_uart.rar操作CH340G收發(fā),接收總是少收到幾個(gè)怎么處理
CW32單片機(jī)UART基本數(shù)據(jù)收發(fā)功能介紹
UART收發(fā)器設(shè)計(jì)實(shí)例
UART收發(fā)器的設(shè)計(jì)實(shí)例詳細(xì)說(shuō)明
【CubeIDE】STM32 HAL庫(kù)史上最詳細(xì)教程(一):UART串口收發(fā)
CC2640R2F開(kāi)發(fā)之:UART串口收發(fā)&TI-RTOS任務(wù)創(chuàng)建(二)
UART通用異步收發(fā)器原理是什么
SDIO UART和音頻電壓轉(zhuǎn)換收發(fā)器TWL1200數(shù)據(jù)表
UART的收發(fā)數(shù)據(jù)操作介紹
評(píng)論