嵌入式系统实验 三

时间:2022-04-11 07:50:05 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。




学生姓名:

班级:

号:

课程:嵌入式系统

一、 实验题目:串口通讯实验 二、 实验地点:工科楼B506

三、 实验目的:

1.掌握ARM的串行口工作原理。 2.编程实现ARMUART通讯。 3.掌握S3C2410寄存器配置方法。

四、 实验内容:

1.实现查询方式串口的收发功能。接收来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端。

五、 实验中遇到的问题及解决方法: 输出字符串是有时乱码

六、 实验结论和感想(附实验程序和运行结果图) 实验程序:

编辑makefile文件如下:

#include "s3c2410.h" #include "serial.h"

#define GPF7_out (1<<(7*2)) #define GPF6_out (1<<(6*2)) #define GPF5_out (1<<(5*2)) #define GPF4_out (1<<(4*2)) static unsigned long m_RandSeed; /* 随机函数 */

inline unsigned long Rand() {

return (m_RandSeed=1664525L*m_RandSeed+1013904223L)>>5; }

void printf(unsigned char* c){ while(*c!='\0')



1




{putc(* c); c++; } }

int main(){

unsigned long i = 4, cnt = 0; unsigned char c;

GPFCON =GPF7_out|GPF6_out|GPF5_out|GPF4_out;

init_uart( ); //波特率1152008N1(8个数据位,无校验位,1个停止位) printf("vnandflafmn ");

while(1) //本程序从串口接收数据后,判断其是否数字或子母,若是则加1后输出 {

GPFDAT = (~(1< if(++i == 8) i = 4; c = getc( ) ;

if ( (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') ){ putc( c ); cnt++; }

if( cnt == 20){ cnt = 0; putc(0x0d); //回车 putc(0x0a); //换行 } }

return 0; }

实验运行结果如下:

在键盘输入12345,超级终端界面显示的是23456. 编辑程序mian.c如下:

#include "s3c2410.h" #include "serial.h"

#define GPF7_out (1<<(7*2)) #define GPF6_out (1<<(6*2)) #define GPF5_out (1<<(5*2)) #define GPF4_out (1<<(4*2))

static unsigned long m_RandSeed; /* 随机函数 */

inline unsigned long Rand() {

return (m_RandSeed=1664525L*m_RandSeed+1013904223L)>>5; }

void printf(unsigned char* c)



2




{

while(*c!='\0') {putc(* c); c++; } }

int main(){

unsigned long i = 4, cnt = 0; unsigned char c;

GPFCON =GPF7_out|GPF6_out|GPF5_out|GPF4_out;

init_uart( ); //波特率1152008N1(8个数据位,无校验位,1个停止位) printf("Hello World ");

while(1) //本程序从串口接收数据后,判断其是否数字或子母,若是则加1后输出 {

GPFDAT = (~(1< if(++i == 8) i = 4; c = getc( ) ;

if ( (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') ){ putc( c ); cnt++; }

if( cnt == 20){ cnt = 0; putc(0x0d); //回车 putc(0x0a); //换行 } }

return 0;

}

实验运行结果如下:

超级终端显示:Hello World

报告评分:

指导教师签字: 批阅日期:



3


本文来源:https://www.wddqw.com/doc/f7a3753e17791711cc7931b765ce05087632758b.html