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\0.从这里开始\0.开机测试。
打开串口实验的Keil工程uart.uvproj,位于目录:..\WT_Mobile\1.初级教程\DA14580\2_初级_串口\projects\target_apps\peripheral_examples\uart\Keil_5,如下图所示:


图13
打开串口调试助手连接串口,波特率为115200。在KEIL中,编译代码,点击DEBUG,然后点击全速运行,就可以看到串口调试助手打印出的信息,发送什么就返回什么,例如发送“WT Mobile Test!”就会返回“WT Mobile Test!”,如下图所示:


图14

更多完整学习资料和对应开源套件,请登陆官网:“疯壳”

如需定制开发,请通过官网“疯壳”网页底部的“联系我们”进行联系

【开发教程5】疯壳·ARM功能手机-串口实验教程相关推荐

  1. 【开发教程1】疯壳·ARM功能手机-开发板上电教程

    开发板上电教程 ARM功能手机 --疯壳·开发板系列 图1     硬件连接     做完全部的实验,需要有以下模块∶     WT 手机开发板(手机主控底板+手机电容屏模块+FPC 30P排线+GS ...

  2. 【开发教程2】疯壳·ARM功能手机-测试程序介绍

    ARM功能手机 --疯壳·开发板系列 测试程序介绍 图1               内容简介     本文档主要介绍开发板上电之后的现象,以及图标对应的实验介绍.读者在看本文档时,应该已经看过< ...

  3. 【疯壳·ARM功能手机开发教程1】开发板上电教程

    ARM功能手机 --疯壳·开发板系列 开发板上电教程 图1     硬件连接     做完全部的实验,需要有以下模块∶     WT 手机开发板(手机主控底板+手机电容屏模块+FPC 30P排线+GS ...

  4. 【开发教程3】疯壳·ARM功能手机-整板资源介绍

    ARM功能手机 --疯壳·开发板系列 整板资源介绍 图1 1.主控MCU   主控MCU选用STM32F407ZGT6,为Contex-M4内核,集成FPU和DSP指令,内部有1M Flash,192 ...

  5. 【教程3】疯壳·ARM功能手机-整板资源介绍

    ARM功能手机 --疯壳·开发板系列 整板资源介绍 图1 1.主控MCU   主控MCU选用STM32F407ZGT6,为Contex-M4内核,集成FPU和DSP指令,内部有1M Flash,192 ...

  6. 【建站系列教程】2.2、fiddler手机抓包教程

    [建站系列教程]2.2.fiddler手机抓包教程 (全网最良心.实用教程) fiddler手机抓包原理 步骤摘要 详细步骤 1. 安装fiddler.修改配置 2. 电脑和手机连上同一个wifi 3 ...

  7. 【开源】DA14580-串口实验教程——疯壳·ARM双处理器开发板系列

    目录 第一节 串口硬件电路 第二节 UART寄存器 2.1 UART介绍 2.2 UART寄存器 2.2.1 接收缓冲寄存器 2.2.2 中断使能寄存器 2.2.3 中断识别寄存器/FIFO控制寄存器 ...

  8. 【开源】DA14580-SPI教程——疯壳·ARM双处理器开发板系列

    目录 第一节 SPI Flash硬件电路 第二节 SPI+寄存器 2.1 SPI+介绍 2.2 寄存器介绍 2.2.1 SPI控制寄存器0 2.2.2 SPI接收/发送寄存器0 2.2.3 SPI接收 ...

  9. 【开源】开发板上电教程——疯壳·ARM双处理器开发板系列

    目录 硬件连接 电池供电 USB口供电 注意: 硬件连接 做完全部的实验,需要有以下模块: WT手机开发板(手机主控底板+手机电容屏模块+FPC_30P排线+GSM天线): 200W摄像头模组: 心率 ...

最新文章

  1. Activity功能控件
  2. php判断三角形类型,C#_C#判断三角形的类型,题目描述: 输入三角形的三 - phpStudy...
  3. 计算机考试忘记备注班级了,2012年计算机二级Access第二十五套上机试题及答案详解...
  4. 34.Odoo产品分析 (四) – 工具板块(5) – 设备及联系人目录(1)
  5. 凤凰系统运行linux,把凤凰系统装进U盘里,打造PC上的可移动android系统
  6. 使用Struts框架,实现用户登陆功能
  7. 嵌入式开发培训靠谱吗,嵌入式开发培训怎么样?
  8. javascript(JS)---立即执行函数(immediately-invoked function expressions,IIFE)
  9. 前端实现对象数组的关键字搜索
  10. 华为应用市场AGC研习社|如何提升投放转化,实现获量增长?
  11. 计算机网络数据链路层
  12. 计算机毕业设计java基于ssm的企业工资管理系统
  13. 欲取代Android的Firefox OS 的意外复兴
  14. 圣诞节来了,用Python Turtle画棵圣诞树吧
  15. 太赞了!2021最新Android开发者学习路线,offer拿到手软
  16. 阿里云后台部署全过程-6-HTTPS原理及配置
  17. 【清明特辑】那些虽败犹荣的科技先烈们
  18. knife4j的使用
  19. 三国系列:何进为什么要斩杀十常侍?
  20. 108K加湿器开发方案 单片机 NY8A051F 单片机开发设计开发

热门文章

  1. Google官方网络框架Volley实战——QQ吉凶测试,南无阿弥陀佛!
  2. 我不看好中移动充当4G急先锋
  3. 20条技巧,让Chrome超越Firefox (2010-11-16更新)
  4. android全景设置高度,Android全景SDK | 百度地图API SDK
  5. 基础知识【H5新增知识1】
  6. 国际电话区号--各国或地区电话国际区号对照表
  7. k8s对接smb/cifs存储
  8. php适合用什么苹果笔记本,苹果电脑哪款适合学生
  9. slf4j保存日志到数据库
  10. 第二章、application.properties文件的配置