PIC32MZEF一共有6個UART端口,資源還是比較豐富的。UART是比較常用的外設,特別是在調試的時候,串口打印信息很方便,測試起來很方便,這篇就來測試一下UART數(shù)據(jù)的發(fā)送和中斷接收。
先來看看板卡原理圖中的引腳接口,UART1和UART2都引出到接插件了,但是UART2的引腳用作OLED驅動使用了,我們就來測試UART1吧。
UART模塊的主要特性有:
? 全雙工8位或9位數(shù)據(jù)發(fā)送
? 偶校驗、奇校驗或無奇偶校驗選項(對于8位數(shù)據(jù))
? 一個或兩個停止位
? 硬件自動波特率特性
? 硬件流控制選項
? 完全集成的波特率發(fā)生器(Baud Rate Generator,BRG),具有16位預分頻器
? 在100 MHz時,波特率范圍為76 bps至25 Mbps(PBCLK2)
?8級深先進先出(First-In-First-Out,F(xiàn)IFO)發(fā)送數(shù)據(jù)緩沖區(qū)
?8級深FIFO接收數(shù)據(jù)緩沖區(qū)
? 奇偶校驗、幀和緩沖區(qū)溢出錯誤檢測
? 支持僅在地址檢測時中斷(第9位 = 1)
? 獨立的發(fā)送和接收中斷
? 用于診斷支持的環(huán)回模式
?LIN協(xié)議支持
?IrDA編碼器和解碼器,具有用于支持外部IrDA編碼器/解碼器的16倍頻波特率時鐘輸出
先來看看UART的內部框圖
下面詳細說一下UART的配置。打開MHC,打開HarmonyFramework Configuration》Drivers》USART。在“Use USARTDrive?”之前的選擇框中打勾。使能UART外設功能。
1,Driver Implementation:這個有動態(tài)和靜態(tài)的可以,我們這里選擇動態(tài)的。
2,中斷模式選擇使能,這里打鉤,表示使能中斷。
3,Number of USART Driver Instances:選擇需要的USART實例的數(shù)量,根據(jù)“Number of USART Driver Instances” 對話框中的數(shù)量,會產(chǎn)生“USARTDriver Instance N”(N = 0,1,2…)。
展開“USART Driver Instance N”(N = 0,1,2…),根據(jù)應用的需要,對每個USART實例的靜態(tài)驅動程序進行配置。
4,USART Module ID:選擇ID1,就是使用的UART1,這里可以選擇1-6。
5,Buad Rate:波特率設置,這里我們設置為19200
6,發(fā)送中斷優(yōu)先級設置,發(fā)送我一般使用查詢方式,而接收使用中斷方式,所以這里發(fā)送選擇禁止中斷。
7,接收中斷優(yōu)先級設置,InterruptPriority和Interrupt Sub-priority這兩項是選擇中斷優(yōu)先級。每個向量有7個用戶可選的優(yōu)先級,每個優(yōu)先級內有4個用戶可選的次優(yōu)先級。
8,Operation Mode:模式選擇,模式有IrDA模式,正常模式,地址檢測模式,環(huán)回模式。我們選擇正常模式就可以了。
9,Line Control:數(shù)據(jù)格式選擇,數(shù)據(jù)位有8,9位,校驗有奇校驗,偶校驗,無校驗,停止位有1,2位。我們選擇N81數(shù)據(jù)格式。
10,Handshake Mode:握手模式,有單工模式,流控制模式和正常模式。我們選擇正常模式。
11,Power State:用來選擇UART可以運行在哪些節(jié)能模式下,這里選擇FULL表示所有模式下都可以運行。
打開引腳設置窗口,進行48,69兩個引腳設置,設置成UART引腳
點擊生成代碼,選擇自動覆蓋以前的程序
看了生成后新的工程文件
在APP.H文件里增加一些變量定義
還是把中斷函數(shù)直接移到APP.C下面,再編寫程序。下篇的話再介紹如何使用回調函數(shù)進行程序的編寫。App.c中增加函數(shù),程序。程序收到一個字節(jié)數(shù)據(jù)后立馬回發(fā),并在顯示屏上顯示接收到的字節(jié)數(shù)
上位機測試軟件,上電后先發(fā)個55,AA
顯示效果和硬件接線,直接使用的是TTL轉USB轉接頭
-
uart
+關注
關注
22文章
1235瀏覽量
101353
發(fā)布評論請先 登錄
相關推薦
評論