实验四 UART通信实验
一、实验目的
掌握UART通信的处理机制,进一步理解UART的参数指标,以及对系统设计的影响,能根据需要编写驱动程序,能使用ARM控制器和上位机的超级终端进行UART通信。
二、实验原理
1.程序介绍
本实验以 PXA270 的串口传输程序为例子,介绍串口通信中查询和中断的数据收发方法。实验现象:本实验根据 PXA270 开发板的串口硬件连接,不加入 Moden 传输协议,仅通过配置PXA270 的 UART 的功能寄存器实现数据的收发功能。
2.实现方法
本实验目标是:通过配置 FFUART(串口1),在PC机上超级终端上显示收发字符,并将键盘输入内容回显在超级终端上。实现步骤:
配置 GPIO 寄存器,实现 CPU 引脚 34,39 接收发送功能。 配置寄存器 POWER Manager Sleep Status (PSSR)。 配置全功能 UART 的寄存器。 编写接收字符和输出字符函数。 编写 FFUART 的中断服务例程。
三、主要实验设备
1.硬件:宿主机、ARM教学试验箱;
2.软件:Windows操作系统、ADS1.2集成开发环境。
四、实验内容
1.程序架构
程序 C 语言部分:
在实验 1 的中,初始化内存、堆栈及 GPIO 都已经介绍,下面主要对串口操作编程进行介绍。
开始串口初始化向串口输出字符N串口收到字符Y向串口输出字符
图4.1 轮询方式操作串口流程图
程序查询方式操作串口:
上述为串口通信查询操作方式的 C 语言代码部分的流程图,从上图可知,PXA270 微处理器的串口要完成收发操作功能,首先要对串口进行初始化配置,下面介绍串口查询操作方式初始化过程:
查询操作方式串口配置的基本步骤:
配置 GPIO 寄存器,实现 CPU 引脚 34,39 接收发送功能; 配置全功能 UART 的寄存器; 编写接收字符和输出字符函数。 下面是查询方式操作串口初始化源码:
void SerialInit(void) {
int i=1000;
GPDR1 |= 0x80; //GPIO<39>为输出功能,GPIO<34>默认为输入功能
GAFR1_L |= 0x8010; //将 GPIO<39>配置成FFTXD功能,将GPIO<34>配置成 FFRXD
功能口
FFIER = 0x40; //设置串口单元使能 while (i>0)i--; //延时
FFLCR = 0x3; //设置串口通信的收发字符的长度(8 bit)
FFFCR = 0xc1; //设置 FIFO 接收字符方式,在 FIFO 当中多余 32bit ,串口使能 FFLCR |= 0x80; //设置串口中断使能
FFDLL = 0x8; //设置串口的波特率为 115200 FFDLH = 0x0;
FFLCR &= 0x7F; //通过配置 FFDLL 寄存器,来确保全功能的波特率不能够做修改
while (!(FFLSR & 0x40)); //确保在所有的传输数据已经被移除完毕 return; }
全功能串口连接原理图:
图4.2 全功能串口原理图
全功能串口使用到的 GPIO 口原理图:
图4.3 全功能串口使用 GPIO 口原理图
2.配置GPIO寄存器,实现将GPIO<34>,GPIO<39>配置成串口的RXD和TXD功能。
从上述原理图可知,全功能串口使用到的FFRXD和FFTXD分别为GPIO34和GPIO39, 所以首先需要配置GPIO的方向和功能寄存器。
图4.4 GPIO<34、39>第二功能选项图
由图 6-2~6-4 可知,要实现 PXA270 微处理器的全功能串口通信功能需要分别将 GPIO<34>、 GPIO<39>配置成输入转换功能 1、输出转换功能 2。GPIO<34、39>输入输出方向的配置:
《嵌入式电子系统设计》课程实验指导书实验4:UART通信实验,(2014.7.11)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)