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