完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ARM功能手机 ——疯壳·开发板系列 串口实验教程 图1 第一节串口硬件电路 串口通过USB口及手环下载调试线引出,连接MCU的P12与P13引脚,如下图所示: 图2 第二节 UART寄存器 2.1 UART介绍 这个UART符合工业标准16550,并且可以和外围设备串行通信。主设备(CPU)通过APB总线将数据写进UART并且被转换成串行格式并且发送到目标设备。串行数据也可以通过UART被接收存储之后,主设备读取接收的数据。 UART模块不支持DMA,但是它有内部FIFOs,并且支持硬件流控制信号(RTS,CTS,DTR,DSR)。 UART模块有16字节的发送和接收FIFO;支持硬件流控制(CTS/RTS);影子寄存器来减少软件开销并且有可编程的软件复位;发送寄存器为空的中断模式;IrDA 1.0 SIR模式支持低功耗模式;可编程的字节属性、校验位和停止位(1,1.5,2);可以断开通信及检测通信线是否断开;中断优先级的识别;可编程的串行通信波特率。 2.2 UART寄存器 UART相关的寄存器比较多,所以我们只介绍常用的寄存器,其它的可以参考官方数据手册DA14580_DS_v3.1.pdf,位于目录:..WT开发板硬件资料。 2.2.1 接收缓冲寄存器 图3 15:8位:保留不使用; 7:0位:接收缓存寄存器。 2.2.2 中断使能寄存器 图4 15:8位:保留不使用; 7位:发送空中断使能位; 6:4位:保留不使用; 3位:调制状态中断使能位; 2位:接收状态中断使能位; 1位:发送结束中断使能位; 0位:数据接收完使能位。 2.2.3 中断识别寄存器/FIFO控制寄存器 图5 15:0位:写则为FIFO控制寄存器,读则为中断识别寄存器。 2.2.4 通信线控制寄存器 图6 15:8位:保留不使用; 7位:波特率使能位; 6位:停止控制位; 5位:保留不使用; 4位:奇偶校验选择位; 3位:校验位; 2位:停止位; 1:0位:数据长度。 2.2.5 调制器控制寄存器 图7 15:7位:保留不使用; 6位:红外通信使能位; 5位:自动流控制使能位; 4位:回路位,用于测试; 3位:用户指定输出2; 2位:用户指定输出1; 1位:发送请求; 0位:保留不使用。 2.2.6 通信线状态寄存器 图8 15:8位:保留不使用; 7位:接收FIFO错误位; 6位:发送器空位; 5位:发送保持寄存器空位; 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) 启动UART1模块的时钟CLK_PER_REG |= 0x0080; 串口初始化寄存器配置: 首先使能波特率配置UART_LCR_REG = 0X08; 配置波特率UART_IER_DLH_REG = 0; UART_RBR_THR_DLL_REG = 9; 8位数据,无校验,1位停止位UART_LCR_REG = 0X03; 关闭红外通信功能UART_MCR_REG = 0X00; 使能FIFO, UART_IIR_FCR_REG = 0X01; 关闭中断UART_IER_DLH_REG = 0X00; 接收一个字节,等待接收完成while((UART_LSR_REG&0x01)==0);读取接收数据rx_data = UART_RBR_THR_DLL_REG; 发送一个字节0x55,等待发送为空while((UART_LSR_REG&0x20)==0);填充发送数据UART_RBR_THR_DLL_REG = 0xaa; 第三节 UART实验 实验需要使用的模块有:手机开发板底板,Jlink调试工具,USB转串模块、杜邦线、3.7V锂电池或Mocro USB线。 使用USB转串模块连接手机蓝牙串口,连接方式如下: (1)USB转串模块一端只需要使用杜邦线连接RXD、TXD、GND三个引脚,如下图所示: 图9 (2)手机主控底板一端需要使用杜邦线连接左侧J7三个引脚,与USB转串模块的引脚一一对应(串口引脚交叉),分别为RXD-->TXD、TXD-->RXD、GND-->GND,如下图所示: 图10 使用JLINK通过杜邦线连接手机蓝牙,连接方式如下: (1)JLINK一端只需要使用杜邦线连接JLINK的SWC、SWD、GND三个引脚,如下图所示: 图11 (2)手机蓝牙一端需要使用杜邦线连接上方右侧的J3三个引脚,与JLINK的连接引脚一一对应,分别为SWC-->SWCLK、SWD-->SWDIO、GND-->GND,如下图所示: 图12 将JLINK插上电脑的USB接口,连接好之后给手机主控底板供电,详细的介绍可以参考《如何上电》教程,路径为:..WT_Mobile .从这里开始 .开机测试。 打开串口实验的Keil工程uart.uvproj,位于目录:..WT_Mobile1.初级教程DA145802_初级_串口projectstarget_appsperipheral_examplesuartKeil_5,如下图所示: 图13 打开串口调试助手连接串口,波特率为115200。在KEIL中,编译代码,点击DEBUG,然后点击全速运行,就可以看到串口调试助手打印出的信息,发送什么就返回什么,例如发送“WT Mobile Test!”就会返回“WT Mobile Test!”,如下图所示: |
|
相关推荐
|
|
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
852 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
592 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
705 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
926 浏览 2 评论
657 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12009 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 12:22 , Processed in 0.565272 second(s), Total 37, Slave 28 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号