嵌入式实验四实验报告文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2020

嵌入式实验四实验报告文档Contract Template

嵌入式实验四实验报告文档

前言语料:温馨提醒,报告一般是指适用于下级向上级机关汇报工作,反映情况,答复上级机关的询问。按性质的不同,报告可划分为:综合报告和专题报告;按行文的直接目的不同,可将报告划分为:呈报性报告和呈转性报告。体会指的是接触一件事、一篇文章、或者其他什么东西之后,对你接触的事物产生的一些内心的想法和自己的理解

本文内容如下:【下载该文档后使用Word打开】

3.4基于UART的加法器的实现

一、实验目的

学习lm3s9b92的串口通信

学习应用超级终端调试串口

学会应用UART有关的库函数

二、实验设备

计算机、LM3S9B92开发板、USBA型公口转MiniB型5Pin数据线1条

三、实验原理

Stellaris系列ARM的UART具有完全可编程、16C550型串行接口的特性。Stellaris系列ARM含有2至3个UART模块。

该指导书在第一部分的 1.2节中说明,该开发板使用了FT2232芯片实现usb到串口的转换。并设置在芯片的B通道上使用虚拟COM接口(VCP)。虚拟串行端口(VCP)与LM3s9b92上的

UART0模块连接。在安装FTDI驱动程序后,windows会分配一个串行通信端口号到VCP通道,并允许windows应用程序(如超级终端)通过USB与LM3s9b92上的UART0进行通信。利用Windows超级终端调试UART的方法

对于该开发板,使用的是USB虚拟的COM端口,无须使用DB9连接器。因此下面讲解一下如何利用Windows附带的超级终端来调试UART接口。

Windows附件里的“超级终端”是个非常实用的应用程序,可以用来调试电脑的COM串行口,也能很好地支持通过USB虚拟的COM口。以下是超级终端配置COM端口的过程:

四、实验要求

采用超级终端作为外部输入与输出的接口,实现多位数的相加。即通过UART串口分别输入需要相加的多位数A与B,最后把A和B两个多位数相加的过程和结果,回显给用户。具体实现方法:既可以采用轮询的方式也可以应用中断。

五、实验步骤

1、连接实验设备:使用USBminiB线缆的mini端与开发板ICDI口相连,另一端接到PC机的USB插口上。

2、根据实验要求编写、调试、运行程序。并要求在代码上附上相关的注释。

#include

#include"inc/hw_ints.h"

#include"inc/hw_memmap.h"

#include"inc/hw_types.h"

#include"driverlib/debug.h"

#include"driverlib/gpio.h"

#include"driverlib/interrupt.h"

#include"driverlib/sysctl.h"

#include"driverlib/uart.h"

#include"grlib/grlib.h"

#include"drivers/kitronix320x240x16_ssd2119_8bit.h" #include"drivers/set_pinout.h"

#include"systemInit.h"

voiduartInit(void)

{

SysCtlPeriEnable(SYSCTL_PERIPH_UART0);//使能UART模块

SysCtlPeriEnable(SYSCTL_PERIPH_GPIOA);//使能RX/TX所在的GPIO端口GPIOPinTypeUART(GPIO_PORTA_BASE,//配置RX/TX 所在管脚为

GPIO_PIN_0|GPIO_PIN_1);//UART收发功能

UARTConfigSet(UART0_BASE,//配置UART端口

9600,//波特率:9600

UART_CONFIG_WLEN_8|//数据位:8

UART_CONFIG_STOP_ONE|//停止位:1

UART_CONFIG_PAR_NONE);//校验位:无

UARTEnable(UART0_BASE);//使能UART端口

}

voiduartPuts(constchars)

{

while(s!='')

{

UARTCharPut(UART0_BASE,(s++));

}

}

main(void)

{

charc,a[12];

intsum=0,num=0,i;

//jtagWait();//防止JTAG失效,重要!

clockInit();//时钟初始化:晶振,6MHz

uartInit();//UART初始化

uartPuts("输入格式m+n=");

for(;;)

{

c=UARTCharGet(UART0_BASE);//等待接收字符

if(c>='0'&&c<='9')//判断收到的是否为字符{

num=num10+c-'0';//将收到的字符转换为整形储存} elseif(c=='+'){//接收第二个数sum=sum+num;

num=0;

}

elseif(c=='=')//输出

{

sum=sum+num;

num=0;

for(i=0;sum!=0;i++)

{

a[i]=sum%10;

sum=(sum-a[i])/10;

}

for(i--;i>=0;i--){

UARTCharPut(UART0_BASE,a[i]+'0');}

UARTCharPut(UART0_BASE,'');}

if(c=='')//如果遇到回车

{

UARTCharPut(UART0_BASE,'');//多回显一个换行} }

}

3、书写实验报告,要求附上程序流程图。

六、实验心得

比较轮询方式与中断方式

相关文档
最新文档