uart实验报告
ARM实验报告——UART0通信、I2C主机读写CAT1025和SPI接口

实验题目:UART0通信、I2C主机读写CAT1025和SPI接口一、实验目的1,学习使用UART0通信、I2C主机读写CAT1025和SPI接口控制。
2,熟悉LPC2138开发板的使用。
3,锻炼学生自己的设计、创造和综合能力。
二、实验仪器微型计算机(含软件H-JTAG V0.3.1和ADSv1_2)、Easy ARM2131开发板、USB接口电源线和JTAG接口线以及部分跳线。
三、实验原理(1)UART0特性:管脚描述:(2)I2CLPC2138具有标准的硬件I2C接口,可配置为主机或从机,总线时钟速率可调整,最高可支持400K 总线速率。
使用I2C总线时,相应引脚设置连接I2C总线,并且总线上要接两个上拉电阻,阻值1-10K欧。
相关寄存器功能框图如图4.40所示:(3)SPI主机实验——7段数码管显示实验使用LPC2138的SPI接口作为主机向74HC595发送数据,数据内容由7段数码管显示。
实验电路图如图2.四、实验内容实验使用主硬件I2C软件包,从上位机向UART0发送数据,将接收到的数据通过I2C往CAT1025内部写入数据,然后读出校验,如果正确则使用SPI驱动数码管显示所写数据。
实验程序如下:#include "config.h"#define CAT1025 0xA0 /* CAT1025器件从地址*/#define HC595_CS (1 << 29) // P0.29口为74HC595的片#define UART_BPS 115200 // 串口通讯波特率uint8 n,rcv_data;const uint32 LED1 = (1 << 18); // P1.18控制LED1,低电平点亮const uint32 KEY1 = 1 << 16; // P0.16连接KEY1/* 此表为LED0~F以及L、P的字模*/uint8 const DISP_TAB[16] = {// 0 1 2 3 4 5 6 7 8 90xC0, 0xF9, 0xA4, 0xB0, 0x99 ,0x92, 0x82, 0xF8, 0x80,0x90};******************************************************************************************** 函数名称:DelayNS()** 函数功能:长软件延时** 入口参数:dly 延时参数,值越大,延时越久******************************************************************************************void DelayNS (uint32 dly){uint32 i;for ( ; dly>0; dly--)for (i=0; i<50000; i++);}/******************************************************************************************* 函数名称:MSPI_Init()** 函数功能:初始化SPI接口,设置为主机。
串口通信实验报告

试验三双机通讯试验【1 】一、试验目标UART 串行通讯接口技巧运用二、试验实现的功效用两片焦点板之间实现串行通讯,将按键信息互发到对方数码管显示.三、体系硬件设计(1)单片机的最小体系部分(2)电源部分(3)人机界面部分数码管部分按键部分(4)串口通讯部分四、体系软件设计#include <STC.H>#define uchar unsigned char#define uint unsigned intvoid send();uchar code0[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9的数码管显示sbit H1=P3^6;sbit H2=P3^7;sbit L1=P0^5;sbit L2=P0^6;sbit L3=P0^7;uint m=0,i=0,j;uchar temp,prt;/***y延时函数***/void delay(uint k){uint i,j; //界说局部变量ijfor(i=0;i<k;i++) //外层轮回{for(j=0;j<121;j++); //内层轮回}}/***键盘扫描***/char scan_key(){ H1=0;H2=0;L1=1;L2=1;L3=1;if(L1==0){ delay(5);if (L1==0){ L1=0;H1=1;H2=1;if(H1==0){ m=1; //KEY1键按下return(m);}if(H2==0){ m=4; //KEY4键按下return(m);}}}if(L2==0){ delay(5);if (L2==0){ L2=0;H1=1;H2=1;if(H1==0){ m=2; //KEY2键按下return(m);}if(H2==0){ m=5; //KEY5键按下return(m);}}}if(L3==0){ delay(5);if (L3==0){ L3=0;H1=1;H2=1;if(H1==0){ m=3; //KEY3键按下return(m);}if(H2==0){ m=6; // KEY6键按下return(m);}}}return(0);}/***主函数***/main(){P1M1=0x00;P1M0=0xff;SCON=0x50;//设定串行口工作方法1TMOD=0x20;//准时器1,主动重载,产生数据传输速度 TH1=0xfd;//数据传输率为9600TR1=1;//启动准时器1P0&=0xf0;while(1){if(scan_key()) //假如有按键按下{SBUF=scan_key(); //发送数据while(!TI); // 等待数据传送TI=0; // 消除数据传送标记}if(RI) //是否稀有据到来{RI=0; // 消除数据传送标记temp=SBUF; // 将吸收到的数据暂消失temp中}P1=code0[temp]; // 数据传送到P1口输出delay(500); //延时500ms}}五、试验中碰到的问题及解决办法(1)串行口和准时器的工作方法设定是症结,本次是按需传输的是两位十六进制数,串行口为工作方法1,准时器为8位主动重载;(2)采取P0&=0xf0语句使4个数码管静态点亮;(3)在发送和接收进程中,用标识位TI和RI来检测发送和接收是否完成;(4)在用电脑和单片机进行串口通讯测试时,电脑的传世速度必定要和单片机的传输速度相等,不然显示会消失错误.指点先生签字:日期:。
uart实验报告

uart实验报告
《UART实验报告》
实验目的:通过实验学习串行通信的基本原理,掌握UART通信协议的工作原理和使用方法。
实验设备:单片机开发板、串口调试助手、电脑。
实验原理:UART(Universal Asynchronous Receiver/Transmitter)是一种通用的异步串行通信协议,用于在计算机和外部设备之间进行数据传输。
UART通信协议包括数据位、停止位、奇偶校验位等参数,通过这些参数的设置可以实现不同的通信速率和数据传输方式。
实验步骤:
1. 连接单片机开发板和电脑,打开串口调试助手。
2. 在单片机开发板上编写UART通信程序,设置通信参数。
3. 将单片机开发板通过串口连接到电脑,打开串口调试助手。
4. 在串口调试助手上发送数据,观察单片机开发板接收到的数据。
5. 在单片机开发板上发送数据,观察串口调试助手接收到的数据。
实验结果:
经过实验,我们成功地实现了通过UART通信协议在单片机开发板和电脑之间进行数据传输。
在串口调试助手上发送的数据能够被单片机开发板正确接收,并且在单片机开发板上发送的数据也能够被串口调试助手正确接收。
通过调整通信参数,我们还验证了不同通信速率和数据传输方式对通信效果的影响。
实验总结:
通过本次实验,我们深入了解了UART通信协议的工作原理和使用方法,掌握
了串行通信的基本原理。
在今后的学习和工作中,我们将能够更加熟练地应用UART通信协议进行数据传输,为实际工程应用打下了坚实的基础。
实验5 UART的使用

实验五UART的使用一、实验目的1.了解并掌握控制器的UART特性和用途2.掌握控制器UART的使用方法。
3.掌握程序系统调试的方法。
二、实验设备(1)PC机一台ARM-CORTEX-M3教学实验开发平台一套(2)Windows xp 系统和编译软件KEIL三、实验内容1.以中断的方式实现UART和PC串行通信四、实验步骤1.软件安装(1)安装嵌入式软件目录里的winrar340.exe(2) 解压缩文件:mdk3.50绿色版.rar到当前文件夹下,并复制到C盘,覆盖C盘原来的KEIL文件夹。
(3)解压缩嵌入式软件目录里的Setup_JLinkARM_V406b.zip,并安装。
(4)打开C:\Keil\UV3\Uv3.exe(建议创建Uv3.exe快捷方式到桌面)(5)注册KEIL软件(已在课堂上详细讲解)2.硬件连线说明:(1) 实验前,先把所有拨码开关置为off,之后把本次实验用到的拨码开关置为on;(2) 实验结束后,把所有拨码开关置为off;(3) 本次实验的所使用实验板上的硬件资源如下图中黄色圆圈所示,短接相应跳线、把相应拨码开关拨到on的位置。
注意:J4和J5的跳线帽横着连接。
(4) 连接JLINK的排线到电路板(5) 使用USB线连接电路板到计算机的USB口,给电路板供电,同时把J11的V_USB侧使用跳线帽短接;连接JLINK的USB线到计算机的USB口。
3. UART和PC串行通信(1) 打开C:\Keil\UV3\Uv3.exe(2) 在UV3界面下,使用打开project的方式,打开文件:实验5\ UART和PC串行通信\ wireless_slave.Uv2(3)重新编译,下载运行程序,打开嵌入式软件目录里的文件UartAssist.exe(4)在发送栏里,填写要发送的信息,以叹号:!作为一包数据的结束,观察接收数据栏内收到的数据(注意十六进制显示和ASC码显示是不一样的)。
嵌入式系统实验—通用异步收发器(UART)实验

嵌⼊式系统实验—通⽤异步收发器(UART)实验实验五:通⽤异步收发器(UART)实验Technorati 标签: 嵌⼊式系统实验,通⽤异步收发器,UART,mini2440,arm,j-link,keil-uvision,实验报告⼀、实验⽬的1、掌握 UART 外设的操作原理和编程。
2、学习使⽤ UART 进⾏多机通讯。
⼆、实验设备1、硬件:PC 机⼀台、Mini2440 ARM 实验板⼀套 J-link 仿真器⼀套2、软件:WindowsXP 系统,Keil uVision 4.0 集成开发环境三、实验内容(1)使⽤ C 语⾔编写 UART 基本收发数据程序,进⾏ 2 个实验板之间的数据收发测试。
(2)⽤两个实验板模拟嵌⼊式控制系统中的数据采集/控制实验,其中⼀个实验板模拟数据采集模块,将通过UART 返回数据;另⼀块实验板模拟控制系统的主机,通过 UART 采集数据,并通过 UART 发出控制指令。
四、实验预习要求(1)学习 UART 相关的原理概念;(2)查阅 S3C2440 芯⽚⼿册,了解 UART0 结构和原理。
五、实验步骤(1)启动 Keil uVision,新建⼀个⼯程ex05。
不需要系统提供的 Startup ⽂件。
建⽴汇编源⽂件 ex05.s,编写实验程序,然后添加到⼯程中。
设置⼯程选项,存储器映射。
设置⼯程调试选项。
建⽴仿真初始化⽂件 RAM.ini。
(2)建⽴ C 语⾔源⽂件 main.c,编写实验程序,然后添加到⼯程中。
(3)使⽤交叉串⼝电缆连接两个实验板。
(4)编译程序,使⽤仿真器在⽬标板上调试运⾏程序,使⽤单步、设置断点,观察程序执⾏时,收发数据的值。
六、实验程序C 语⾔实验程序见程序清单 5。
程序清单 4.1 UART 实验程序// Uart0#define WrUTXH0(ch) (*(volatile unsigned char *)0x50000020)=(unsigned char)(ch)#define RdURXH0() (*(volatile unsigned char *)0x50000024)#define rULCON0 (*(volatile unsigned *)0x50000000) //UART 0 Line control#define rUCON0 (*(volatile unsigned *)0x50000004) //UART 0 Control#define rUFCON0 (*(volatile unsigned *)0x50000008) //UART 0 FIFO control#define rUMCON0 (*(volatile unsigned *)0x5000000c) //UART 0 Modem control#define rUTRSTAT0 (*(volatile unsigned *)0x50000010) //UART 0 Tx/Rx status#define rUERSTAT0 (*(volatile unsigned *)0x50000014) //UART 0 Rx error status#define rUFSTAT0 (*(volatile unsigned *)0x50000018) //UART 0 FIFO status#define rUMSTAT0 (*(volatile unsigned *)0x5000001c) //UART 0 Modem status#define rUBRDIV0 (*(volatile unsigned *)0x50000028) //UART 0 Baud rate divisor#define rGPHCON (*(volatile unsigned *)0x56000070) //Port H control#define rGPHUP (*(volatile unsigned *)0x56000078) //Pull-up control H//PCLK:12MHz#define PCLK 12000000//( (int)(pclk/16./baud+0.5) -1 )#define baud_value 12 //57600void Uart_Init(){int i;rUFCON0 = 0x0; //UART channel 0 FIFO control register, FIFO disablerUMCON0 = 0x0; //UART chaneel 0 MODEM control register, AFC disablerULCON0 = 0x3; //Line control register : Normal,No parity,1 stop,8 bits// [10] [9] [8] [7] [6] [5] [4] [3:2] [1:0]// Clock Sel, Tx Int, Rx Int, Rx Time Out, Rx err, Loop-back, Send break, TransmitMode, Receive Mode// 0 1 0 , 0 1 0 0 ,01 01// PCLK Level Pulse Disable Generate Normal NormalInterrupt or PollingrUCON0 = 0x245; // Control registerrUBRDIV0= baud_value; //Baud rate divisior register 0for(i=0;i<100;i++);rGPHCON |= 0xaa;//use GPH port as uart0rGPHUP =0x0f;//the pull up function is disabled}void Uart_SendByte(int data){WrUTXH0(data);char Uart_Getch(void){while(!(rUTRSTAT0 & 0x1)) //Receive data readyreturn RdURXH0();}main(){char c = 'a';Uart_Init();Uart_SendByte(c);while(1){c = Uart_Getch();c++;Uart_SendByte(c);}七、实验现象两块实验板在接收指令处设断点,然后实验板1全速运⾏,实验板2接着全速运⾏,实验板1⾃动暂停。
UART通信实验

计算机与外部设备之间的通信一般采用两种方式:并行方式和串行方式。
所谓的并行方式就是各个位同时进行传输的通信方式,这种方式通信主要特点是通信的速度快,但当距离远且位数多的时候并行通信的成本就会高很多。
串行通信分为异步与同步串行通信。
UART(通用异步收发器)就是所谓的异步串行通信协议。
只要通信的双方采用相同的数据帧格式(数据位,开始位,校验位,停止位)和波特率就能在未共享同步时钟信号的情况下通过两根据数据线(RX和TX)进行数据通信。
采用这种方式,当数据传输结束后可以通过置位中断位通知处理器进行相应的处理。
STELLARIS系列ARM芯片的UART具有完全可编程,16C550型串口接口的特性(但并不兼容)。
独立发送FIFO(16B)和接收的FIFO(16B)(first in first out),可以将两个FIFO配置成不同程序的触发中断,可供选择的触发深底见下图中。
如:接收FIFO配置成1/4触发深度,则当UART收到4个数据时,产生接收中断。
UART模块的特性如下:下面是PC机的COM接口与ARM芯片的UART接口的典型电路。
注意:图中的电阻不能省略,否则会影响数据的传输。
U1是Exar(原sipex)公司出产的UART 转RS232C的接口芯片SP3232E。
可在3.3V下工作。
UART的功能概述:发送:发送逻辑从发送FIFO读取的数据执行并->串转换。
控制逻辑执行输出起始位在前的串行流,根据控制寄存器中已编程的配置,后面紧跟数据位(注:LSB最低位先输出),奇偶校验位,停止位。
接收:在检测到一个有效的起始脉冲时,接收逻辑对收到以的位流执行串->并转换,此外还会对溢出错误,奇偶校验错误,帧错误和线中止(line-break)错误进行检测。
并将检测到的状态一起写入到接收FIFO中。
波特率的产生:baud-rate divisor(波特率除数)是一个22位数,16位整数和6位小数。
实验4 UART实验
实验四uart实验1.实验类型:设计性实验2.实验目的:了解和熟悉实验箱硬件、UART通信程序设计及烧写等3.实验内容:(1) 根据硬件结构写出S3C2410与PC机的串口通信程序;(2) 根据接收命令控制LED灯的显示;4.关键实验步骤:1.把并口线插到pc机的并口,并把并口与JTAG相连,JTAG与开发板的14针JTAT口相连,打开2410-S.2.把整个GIVEIO目录拷贝到C:\WINDOWS下,并把该目录下的giveio.sys文件拷贝到c:/windows/system32/drivers下。
3.在控制面板里,选添加硬件>下一步>选-是我已经连接了此硬件>下一步>选中-添加新的硬件设备>下一步>选中安装我手动从列表选择的硬件>下一步>选择-显示所有设备>选择-从磁盘安装-浏览,指定驱动为C:\WINDOWS\GIVEIO\giveio.inf文件,点击确定,安装好驱动.4.根据硬件连接图编写控制程序,并生成bin文件.5.在d盘新建一目录ARM,把sjf2410.exe和要烧写的bin文件拷贝到该目录下,在程序-附件-msdos下,进入该目录,运行sjf2410 命令如下:sjf2410 /f:bin 文件.在此后出现的三次要求输入参数,第一次是让选择Flash,选0;第二次是选择jtag对flash的两种功能,也选0;第三次是让选择起始地址,选0此后就等待大约3-5分钟的烧写时间,当VIVI 烧写完毕后选择参数2,退出烧写。
烧录后重新启动2410-S,观察不同控制程序的实验现象。
#define ULCON0 (*(volatile unsigned long *)0x50000000)#define UCON0 (*(volatile unsigned long *)0x50000004)#define UTRSTA T0 (*(volatile unsigned long *)0x50000010)#define UTXH0 (*(volatile unsigned long *)0x50000020)#define URXH0 (*(volatile unsigned long *)0x50000024)#define UBRDIV0 (*(volatile unsigned long *)0x50000028)#define GPHCON (*(volatile unsigned long *)0x56000070)//#define GPHDAT (*(volatile unsigned long *)0x56000074) #define GPHUP (*(volatile unsigned long *)0x56000078)void Delay(unsigned long x);int Main(){unsigned long uartrecdata=0x09;ULCON0=0x03;UCON0=0x45;UBRDIV0=0x13;GPHCON=0x000000A0;GPHUP=0x00000000;while(1){while(!(UTRSTAT0&0x2)); //等待知道THR变空//改动延时时间1--10 Delay(100);UTXH0 =uartrecdata;Delay(100);while(!(UTRSTAT0&0x1)); //等待直到接受到一个数据uartrecdata=URXH0;Delay(100);}return 0;}void Delay(unsigned long x){unsigned long i,l=0;for(i=0;i<=x;i++);}IMPORT MainAREA Init,CODE,READONLYENTRYLDR R0,=0x53000000mov r1,#0STR R1,[R0]BL MainEND#define IOPMOD (*(volatile unsigned long *)0x56000020)#define IOPDATA (*(volatile unsigned long *)0x56000024)void Delay(unsigned long x);int Main(){unsigned long LED;IOPMOD=0x00005400; LED=0x00000001;while(1){IOPDATA=LED;LED=(LED<<1);if(LED==0x00000100)LED=0x00000001;Delay(200000);}return 0;}void Delay(unsigned long x){ unsigned long i;for(i=0;i<=x;i++) ;}。
UART控制器设计
XX电子科技大学可编程逻辑器件原理、应用与实验课程实验报告实验名称UART控制器设计及验证研究生院学院代培生班Array学号同作者实验日期2017 年 4 月23 日目录一任务简介11.1 实验目的11.2 开发工具平台 (1)二模块设计 (2)2.1输入模块设计 (2)2.1.1机械按键消抖 (2)2.1.2矩阵键盘扫描 (3)2.1.3参量输入及显示输入 (5)2.2显示模块 (6)2.3三态门控制模块 (8)2.4 UART通信协议帧格式及波特率设置 (9)2.5 UART通信模块 (10)2.5.1串口数据发送模块 (11)2.5.2串口数据接收模块12三系统介绍 (13)3.1系统结构介绍 (13)3.2系统子模块介绍 (15)3.3 开发板实验结果 (17)四总结 (20)一任务简介1.1实验目的本次任务的目标为设计一个基于FPGA的串口通信控制器,具体技术要求如下:(1) 实现与PC的双向通信;(2) 可以通过输入模块在开发板上定义向PC发送的数据;(3) 数据帧长度可调(6/7/8位);(4) 通信波特率可调;(5) 在数码管上实现波特率、输入数据、接收数据的显示。
(6) 按键A用于接收模式和输入模式的选择,按键B用于选择输入模式为波特率设置还是发送数据设置,按键C为发送确认键,按键D用于选择数据帧长度,矩阵键盘(0~9)用于输入波特率因子和发送数据(十六进制显示);各种模式均有数码管显示相应内容,其中数据帧长度由四个LED灯表示。
(7) 操作流程:1. 通信参数设置:在开发板上选择数据帧长度、设置波特率、输入发送数据帧;在PC端的串口通信助手中设置波特率和数据帧长度;2. 数据发送:按下C键向PC发送数据,在PC端确认接收的数据;3. 数据接收:由PC端向开发板发送数据,在开发板上选择数据接收模式即可显示;4. 默认设置:UART控制器默认波特率为9600,默认发送数据为8’h18;(8) 以上内容均需在开发板上验证;实验截图在本文第三部分给出。
《嵌入式系统原理与应用》实验报告05-UART通信实验
二、实验设备(环境)及要求
硬件:PC机;
软件:PC机操作系统windows XP,Proteus软件,ADS1.2
三、实验内容与步骤
实验内容:
搭建好环境的基础上,实现UART通信实验。实验要求如下:利用LPC2138的UART接口,实现与虚拟终端的通信。显打印自己的个人信息,然后再从虚拟终端接受输入,并把接收到的数据返回。可根据自己的能力自由发挥。
U1DLL=Fpclk / 16/Baud_Rate%256; //设置波特率
U1DLM=Fpclk / 16/Baud_Rate/256;
U1LCR=0X03;
}
void UART1_SendByte(uint8 data)//UART1查询方式发送数据
{
U1THR=data; //发送数据
while ((U1LSR & 0X40)==0); //等待数据发送完毕
嵌入式系统原理与应用实验报告05uart通信实验系统实验通信通信实验实验报告实验系统uart嵌入式系统嵌入式应用实验
《嵌入式系统原理与应用》实验报告
实验序号:5实验项目名称:UART通信实验
学 号
1207012117
姓 名
黄明
专业、班
1
实验地点
1-318
指导教师
黄鹏程
实验时间
5-16
一、实验目的
1.熟悉proteus仿真软件的使用。
}
uint8 UART1_RcvByte(void) //UART1查询方式接受数据
{
uint8 data;
while ((U1LSR & 0X01)==0);
data=U1RBR;
uart串口通信实验报告
串口通信实验报告基本实验:16位的乘法器设计思想:乘法器根据以往学过数电的设计经验,应该是移位相加的方法,设被乘数为[15:0]a,乘数为[15:0]b,则从b的最高位开始算起,c初值为0,为b最高位为1,则c就等于c+a;接下来,若b的次高位为1,则c左移一位加a,若为0则c左移一位就可以了,这样的步骤做到b的最低位那么c的值就是a*b,当然最好c是中间寄存器,这样结果才不会出现中间值。
实验的源码:module muti(clk,rst,ready,a,b,c);input clk;input rst;input [15:0]a;input [15:0]b;output [31:0]c;output ready;reg [31:0]c;reg ready;reg [31:0]temp;reg [5:0]n;always @(posedge clk or posedge rst)beginif(rst)beginc<=0;ready<=1;temp<=0;n<=32;endelseif(ready)begintemp<=0;n<=32;ready<=0;endelseif(n)beginif(b[n-1])begintemp<=(temp<<1)+a;n<=n-1;endbegintemp<=temp<<1;n<=n-1;endendelsebeginc<=temp;n<=32;ready<=1;endendendmodul测试代码:`timescale 1ns/1ns module tb;reg clk;reg [15:0]a;reg [15:0]b;reg rst;wire ready;wire [31:0]c;always #10 clk=~clk; initialbeginrst<=1;clk<=0;a=0;b=0;#10 rst=0;#21 a=21;b=32;#650 a=3;b=4;#700 $stop;endmuti muti_unit(.a(a),.b(b),.rst(rst),.clk(clk),.ready(ready),.c(c));endmodule这边a被乘数,b是乘数,当rst为高时,则将c置0,ready置一,ready信号为高表示此时空闲可以计算,rst为低时则开始计算,21*32为672,3*4为12,在乘法操作时,ready信号为低电平表示在工作中不能再输入进行计算,当计算结束则变为高电平。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UART_CONFIG_STOP_ONE | //停止位:1
UART_CONFIG_PAR_NONE); //校验位:无
UARTEnable(UART0_BASE); //使能UART端口
}
void uartPuts(const char *s)
{
while (*s != '\0')
{
UARTCharPut(UART0_BASE, *(s++));
2、根据实验要求编写、调试、运行程序。并要求在代码上附上相关的注释。
#include <string.h>
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/debug.h"
{
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, '\n');
}
}
main(void)
{
char c,a[12];
int sum=0,num=0,i;
// jtagWait( ); //防止JTAG失效,重要!
clockInit( ); //时钟初始化:晶振,6MHz
uartInit( ); // UART初始化
uartPuts("输入格式m+n=\n");
for (;;)
3
一、实验目的
学习lm3s9b92的串口通信
学习应用超级终端调试串口
学会应用UART有关的库函数
二、实验设备
计算机、LM3S9B92开发板、USB A型公口转Mini B型5Pin数据线1条
三、实验原理
Stellaris系列ARM的UART具有完全可编程、16C550型串行接口的特性。Stellaris系列ARM含有2至3个UART模块。
利用Windows超级终端调试UART的方法
对于该开发板,使用的是USB虚拟的COM端口,无须使用DB9连接器。因此下面讲解一下如何利用Windows附带的超级终端来调试UART接口。
Windows附件里的“超级终端”是个非常实用的应用程序,可以用来调试电脑的COM串行口,也能很好地支持通过USB虚拟的COM口。以下是超级终端配置COM端口的过程:
#include "drivers/set_pinout.h"
#include "systemInit.h"
void uartInit(void)
{
SysCtlPeriEnable(SYSCTL_PERIPH_UART0); //使能UART模块
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOA); //使能RX/TX所在的GPIO端口
{
c = UARTCharGet(UART0_BASE); //等待接收字符
if(c>='0'&&c<='9') //判断收到的是否为字符
{
num=num*10+c-'0'; //将收到的字符转换为整形储存
}
else if(c=='+'){ //接收第二个数
sum=sum+num;
num=0;
}
else if(c=='=') //输出
}
if (c == '\r') //如果遇到回车<CR>
{
UARTCharPut(UART0_BASE, '\n'); //多回显一个换行<LF>
}
}
}
3、书写实验报告,要求附上程序流程图。
六、实验心得
比较轮询方式与中断方式
四、实验要求
采用超级终端作为外部输入与输出的接口,实现多位数的相加。即通过UART串口分别输入需要相加的多位数A与B,最后把A和B两个多位数相加的过程和结果,回显给用户。具体实现方法:既可以采用轮询的方式也可以应用中断。
五、实验步骤
1、连接实验设备:使用USB mini B线缆的mini端与开发板ICDI口相连,另一端接到PC机的USB插口上。
#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"
GPIOPinTypeUART(GPIO_PORTA_BASE, //配置RX/TX所在管脚为
ቤተ መጻሕፍቲ ባይዱGPIO_PIN_0 | GPIO_PIN_1); // UART收发功能
UARTConfigSet(UART0_BASE, //配置UART端口
9600, //波特率:9600
UART_CONFIG_WLEN_8| //数据位:8