实验五 串口通信实验
1 实验目的
(1) 掌握ARM的串行口工作原理;
(2) 编程实现ARM的UART通讯;
(3) 掌握S3C2410寄存器配置方法。
2 实验设备
(1) S3C2410嵌入式开发板,JTAG仿真器。
(2) 软件:PC机操作系统Windows XP,ADS1.2集成开发环境,仿真器驱动程序,超级终端通讯程序。
3 实验内容
实现查询方式串口的收发功能。接收来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端。
4 实验步骤
(1) 参照模板工程,新建一个工程UART,添加相应的文件,并修改UART的工程设置;相关设置如下列图所示:
图5.1 设置R0 Base
图5.2 添加Target
图5.3 配置
(2) 创建xinint.c和init.c并加入到工程UART中;
(3) 编写串口操作函数实现如下功能:循环接收串口送来的数据,并将接收到的数据发送回去;
参考代码如下:
(1)串口初始化程序
MMU_Init(); //初始化内存管理单元
//设置系统时钟
ChangeClockDivider(1,1); // 1:2:4
ChangeMPllValue(0xa1,0x3,0x1); // FCLK=202.8MHz
Port_Init(); //初始化I/O口
Uart_Init(0,115200); //初始化串口
Uart_Select(0); //选择串口0
(2)发送数据
while(!(rUTRSTAT0&0x2)); //等待发送缓冲空
rUTXH0=data; //将数据写到数据端口
(3)接收数据
while(rUTRSTAT0&0x1==0x0); //等待数据
data=rURXH0; //读取数据(4) 编译UART;
(5) 将计算机的串口接到开发板的UART0上;
(6) 运行超级终端,选择正确的串口号,并将串口设置位:波特率(115200)、奇偶校验(None)、数据位数(8)和停止位数(1),无流控,打开串口;
(7) 运行程序,在超级终端中输入的数据将回显到超级终端上,结果如图5.4所示:
图5.4 运行结果
(8) 修改程序代码,使用户输入的数字在超级终端显示;结果如图5.5所示:
图5.5 运行结果
图5.6 运行结果
5 实验总结
通过这次实验我掌握了串口的使用方法,串口初始化、发送数据和接收数据,为以后的实验奠定了基础,通过有关书籍我知道在嵌入式系统中串口是一个重要的资源,常用来做输入输出设备。
在实验过程中遇到了很多的问题,在第一次连接开发板的时候,无论怎样连接都无法在超级终端显示,在修改代码使用户输入数字在超级终端显示时,代码重新修改优化也是花费了很多的时间。