查看: 2102|回復: 0
打印 上一主題 下一主題

【教程5】瘋殼·ARM功能手機-串口實(shí)驗教程

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2022-8-9 11:01:47 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)鍵詞: ARM , 功能手機 , 串口 , 實(shí)驗教程 , UART
ARM功能手機
——瘋殼·開(kāi)發(fā)板系列
串口實(shí)驗教程





圖1



第一節串口硬件電路

串口通過(guò)USB口及手環(huán)下載調試線(xiàn)引出,連接MCU的P12與P13引腳,如下圖所示:



圖2



第二節 UART寄存器

2.1 UART介紹
    這個(gè)UART符合工業(yè)標準16550,并且可以和外圍設備串行通信。主設備(CPU)通過(guò)APB總線(xiàn)將數據寫(xiě)進(jìn)UART并且被轉換成串行格式并且發(fā)送到目標設備。串行數據也可以通過(guò)UART被接收存儲之后,主設備讀取接收的數據。
UART模塊不支持DMA,但是它有內部FIFOs,并且支持硬件流控制信號(RTS,CTS,DTR,DSR)。
UART模塊有16字節的發(fā)送和接收FIFO;支持硬件流控制(CTS/RTS);影子寄存器來(lái)減少軟件開(kāi)銷(xiāo)并且有可編程的軟件復位;發(fā)送寄存器為空的中斷模式;IrDA 1.0 SIR模式支持低功耗模式;可編程的字節屬性、校驗位和停止位(1,1.5,2);可以斷開(kāi)通信及檢測通信線(xiàn)是否斷開(kāi);中斷優(yōu)先級的識別;可編程的串行通信波特率。
2.2 UART寄存器
UART相關(guān)的寄存器比較多,所以我們只介紹常用的寄存器,其它的可以參考官方數據手冊DA14580_DS_v3.1.pdf,位于目錄:..\WT開(kāi)發(fā)板\硬件資料。
2.2.1 接收緩沖寄存器



圖3
15:8位:保留不使用;
7:0位:接收緩存寄存器。
2.2.2 中斷使能寄存器



圖4
15:8位:保留不使用;
7位:發(fā)送空中斷使能位;
6:4位:保留不使用;
3位:調制狀態(tài)中斷使能位;
2位:接收狀態(tài)中斷使能位;
1位:發(fā)送結束中斷使能位;
0位:數據接收完使能位。
2.2.3 中斷識別寄存器/FIFO控制寄存器


圖5
15:0位:寫(xiě)則為FIFO控制寄存器,讀則為中斷識別寄存器。
2.2.4 通信線(xiàn)控制寄存器


圖6
15:8位:保留不使用;
7位:波特率使能位;
6位:停止控制位;
5位:保留不使用;
4位:奇偶校驗選擇位;
3位:校驗位;
2位:停止位;
1:0位:數據長(cháng)度。
2.2.5 調制器控制寄存器




圖7
15:7位:保留不使用;
6位:紅外通信使能位;
5位:自動(dòng)流控制使能位;
4位:回路位,用于測試;
3位:用戶(hù)指定輸出2;
2位:用戶(hù)指定輸出1;
1位:發(fā)送請求;
0位:保留不使用。
2.2.6 通信線(xiàn)狀態(tài)寄存器




圖8
15:8位:保留不使用;
7位:接收FIFO錯誤位;
6位:發(fā)送器空位;
5位:發(fā)送保持寄存器空位;
4位:異常停止中斷位;
3位:幀錯誤位;
2位:校驗錯誤位;
1位:溢出錯誤位;
0位:數據準備好位。
2.3 寄存器配置講解
#define CLK_PER_REG                 (* ( volatile uint16*)0x50000004)
#define UART_RBR_THR_DLL_REG        (* ( volatile uint16*)0x50001000)
#define UART_IER_DLH_REG            (* ( volatile uint16*)0x50001004)
#define UART_IIR_FCR_REG             (* ( volatile uint16*)0x50001008)
#define UART_LCR_REG                (* ( volatile uint16*)0x5000100C)
#define UART_MCR_REG               (* ( volatile uint16*)0x50001010)
#define UART_LSR_REG                (* ( volatile uint16*)0x50001014)
#define UART_MSR_REG               (* ( volatile uint16*)0x50001018)
#define UART_SCR_REG                (* ( volatile uint16*)0x5000101C)
啟動(dòng)UART1模塊的時(shí)鐘CLK_PER_REG |= 0x0080;
串口初始化寄存器配置:
首先使能波特率配置UART_LCR_REG = 0X08;
配置波特率UART_IER_DLH_REG = 0; UART_RBR_THR_DLL_REG = 9;
8位數據,無(wú)校驗,1位停止位UART_LCR_REG = 0X03;
關(guān)閉紅外通信功能UART_MCR_REG = 0X00;
使能FIFO, UART_IIR_FCR_REG = 0X01;
關(guān)閉中斷UART_IER_DLH_REG = 0X00;
接收一個(gè)字節,等待接收完成while((UART_LSR_REG&0x01)==0);讀取接收數據rx_data = UART_RBR_THR_DLL_REG;
發(fā)送一個(gè)字節0x55,等待發(fā)送為空while((UART_LSR_REG&0x20)==0);填充發(fā)送數據UART_RBR_THR_DLL_REG = 0xaa;



第三節 UART實(shí)驗
實(shí)驗需要使用的模塊有:手機開(kāi)發(fā)板底板,Jlink調試工具,USB轉串模塊、杜邦線(xiàn)、3.7V鋰電池或Mocro USB線(xiàn)。
使用USB轉串模塊連接手機藍牙串口,連接方式如下:
    (1)USB轉串模塊一端只需要使用杜邦線(xiàn)連接RXD、TXD、GND三個(gè)引腳,如下圖所示:


圖9
(2)手機主控底板一端需要使用杜邦線(xiàn)連接左側J7三個(gè)引腳,與USB轉串模塊的引腳一一對應(串口引腳交叉),分別為RXD-->TXD、TXD-->RXD、GND-->GND,如下圖所示:


圖10
使用JLINK通過(guò)杜邦線(xiàn)連接手機藍牙,連接方式如下:
(1)JLINK一端只需要使用杜邦線(xiàn)連接JLINK的SWC、SWD、GND三個(gè)引腳,如下圖所示:


圖11
(2)手機藍牙一端需要使用杜邦線(xiàn)連接上方右側的J3三個(gè)引腳,與JLINK的連接引腳一一對應,分別為SWC-->SWCLK、SWD-->SWDIO、GND-->GND,如下圖所示:


圖12
將JLINK插上電腦的USB接口,連接好之后給手機主控底板供電,詳細的介紹可以參考《如何上電》教程,路徑為:..\WT_Mobile\0.從這里開(kāi)始\0.開(kāi)機測試。
打開(kāi)串口實(shí)驗的Keil工程uart.uvproj,位于目錄:..\WT_Mobile\1.初級教程\DA14580\2_初級_串口\projects\target_apps\peripheral_examples\uart\Keil_5,如下圖所示:


圖13
打開(kāi)串口調試助手連接串口,波特率為115200。在KEIL中,編譯代碼,點(diǎn)擊DEBUG,然后點(diǎn)擊全速運行,就可以看到串口調試助手打印出的信息,發(fā)送什么就返回什么,例如發(fā)送“WT Mobile Test!”就會(huì )返回“WT Mobile Test!”,如下圖所示:




圖14


圖15




如需定制開(kāi)發(fā),請通過(guò)官網(wǎng)“瘋殼”網(wǎng)頁(yè)底部的“聯(lián)系我們”進(jìn)行聯(lián)系

文件下載請點(diǎn)擊: 串口教程.pdf (1.43 MB)        

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页