dsp实验-UART串口通信实验
单片机UART通信实现

单片机UART通信实现在单片机系统中,UART(通用异步收发器)通信是一种常见的串口通信方式。
通过UART通信,可以实现单片机与外部设备之间的数据传输。
本篇文章将介绍如何使用单片机实现UART通信,并提供相应的代码示例。
一、UART通信原理UART通信是一种串行通信方式,其中数据按照位的形式依次传输。
UART接口包括发送端和接收端,发送端将要传输的数据通过串行方式发送出去,接收端将接收到的数据按位恢复为原始数据。
通信的核心是波特率,即数据传输的速度。
发送端和接收端必须以相同的波特率进行通信,以确保数据的正确传输。
二、单片机UART通信的硬件连接实现单片机UART通信的关键是正确连接相应的硬件。
典型的单片机UART通信硬件连接如下:发送端:- 单片机的TX(发送)引脚连接到外部设备的RX(接收)引脚- 单片机的GND引脚连接到外部设备的GND引脚接收端:- 单片机的RX(接收)引脚连接到外部设备的TX(发送)引脚- 单片机的GND引脚连接到外部设备的GND引脚三、单片机UART通信的软件实现在软件方面,需要编写相应的代码来配置单片机的UART通信模块。
以下是一个示例代码,用于实现基本的UART通信功能。
```c#include <reg51.h>#define BAUDRATE 9600 // 波特率设置为9600bpsvoid uart_init(){TMOD = 0x20; // 设置定时器1为8位自动重装模式TH1 = -(256 - (11059200 / 12 / 32) / BAUDRATE); // 设置波特率TL1 = TH1; // 初始化定时器1的初值TR1 = 1; // 启动定时器1SCON = 0x50; // 标识为8位UART模式EA = 1; // 允许全局中断ES = 1; // 允许串口中断}void uart_send(unsigned char dat)SBUF = dat; // 将数据写入发送寄存器 while (!TI); // 等待发送完毕TI = 0; // 清除发送完成标志}unsigned char uart_receive(){while (!RI); // 等待接收完毕RI = 0; // 清除接收标志return SBUF; // 返回接收到的数据}void main(){unsigned char data;uart_init(); // 初始化UART通信模块 while (1)data = uart_receive(); // 接收数据uart_send(data); // 发送接收到的数据}}```以上代码是基于8051系列单片机的实现示例,具体的单片机型号和编程语言可能有所不同,但基本原理是相同的。
浅谈UART通信协议 UART接收数据时序设计

浅谈UART通信协议UART接收数据时序设计串口通信也是一个基础实验,是FPGA与电脑、单片机、DSP通信的一种最简单的方案,对通信速率要求不高时可以选择UART通信。
您可能已经知道UART时序的控制、波特率的配置等方面的内容,但在实际使用时还是会遇到一些问题,比如如何才能恰当的和其它模块进行衔接?为什么时序明明没问题,却无法和其它控制单元成功通信?本文致力于全面解析在设计UART通信时的思路方法。
UART通信协议UART通信的一帧一般由11到12位数据组成。
1bit的起始位,检测为低电平表示数据开始传输;紧接着8bits的数据;然后是1bit的奇偶校验位,可以是奇校验或者偶校验;最后是1bit或2bits的停止位,必须为高电平,表示一个字符数据的传输结束。
其中校验位是可选的,用来检验数据是否传输正确。
如果有校验位,则需要保证收发双方选择同样的一种检验方式。
奇校验就是保证数据中的1是奇数,比如如果8bit数据中有3bits的1,校验位置0;如果有4bits的1,校验位置1。
偶校验就是保证数据中的1是偶数。
波特率的配置波特率表示数据传输的速率,单位bps,表示位每秒。
比如9600bps就表示1s可以传输9600bits的数据。
异步收发没有时钟打拍来控制数据的传输,就需要保证收发双方在波特率设置上的一致。
确保接收数据的完整性。
程序中通常使用16倍速率对UART通信时序进行采样,则UART通信所需的时钟就是16*bps,如9600bps通信所需的驱动时钟大小就是16*9600=153.6kHz。
程序中可以使用一个计数器对系统时钟分频产生UART通信时钟。
// 分频生成UART通信时钟always @(posedge clk50 or negedge rst_n)if (!rst_n)beginclkout 《=1b0;。
串口通信实验报告

串⼝通信实验报告⼤连理⼯⼤学实验报告成绩:串⼝通信实验⼀、实验⽬的和要求了解串⼝通信的原理与机制掌握基于8051的串⼝通信硬件电路设计⽅法掌握8051串⼝通信程序调试⽅法⼆、实验原理和内容实验原理:1.串⼝通信简介串⼝通信是指数据在⼀根数据线上按照⼆进制数的数位⼀位接⼀位的传输。
其特点是通信线路简单,只要⼀对传输线就可以实现通信(如电话线),可⼤⼤地降低成本,适⽤于远距离通信。
缺点是传送速度慢。
2. 51单⽚机串⾏⼝简介51单⽚机的串⾏⼝是⼀个可编程全双⼯的通信接⼝,具有UART(通⽤异步收发器)的全部功能,能同时进⾏数据的发送和接收,也可以作为同步移位寄存器使⽤。
51单⽚机的串⾏⼝主要由两个独⽴的串⾏数据缓冲寄存器SBUF组成,它可以通过特殊功能寄存器SBUF对串⾏接收或串⾏发送寄存器进⾏访问,两个寄存器共⽤⼀个地址99H,但在物理上是两个独⽴的寄存器,由指令操作决定访问哪⼀个寄存器。
执⾏写指令时访问串⾏发送寄存器;执⾏读指令时,访问串⾏接收寄存器。
3.串⾏⼝控制寄存器SCON串⾏⼝控制寄存器SCON⽤来设定串⾏⼝的⼯作⽅式、接收或发送控制位以及状态标志位等。
在本实验中设定SM0为0,SM1为1,采⽤串⾏⼝的⼯作⽅式1(8位异步收发,波特率可变,由定时器控制)。
允许串⾏接收位REN设置为1,其它控制、标志位设置为0。
(即令SCON=0X50)4.定时器/计数器模式控制寄存器TMOD定时器/计数器模式控制寄存器TMOD是⼀个逐位定义的8位寄存器,其中低四位(即D0 ~ D3)定义定时器/计数器T0,⾼四位(即D4 ~ D7)定义定时器/计数器T1。
在本实验中使⽤定时器1,设定M1=1,M2=0,,采⽤定时器T1的⼯作⽅式2(⾃动重载8位定时器/计数器),其它控制位设置为0。
并由晶振频率(11.0592MHZ)和波特率(9600)计算初始化定时器T1:TH1=TL1=0xfd。
最后通过对TR1置1启动定时器T1。
单片机双机串行实验报告

单片机双机串行实验报告实验报告:单片机双机串行通信实验一、实验目的本实验旨在通过单片机实现双机间的串行通信,包括数据的发送和接收,并利用这种通信方式完成一定的任务。
二、实验原理1.串行通信:串行通信是将数据一个个位发送或接收的方式。
数据通过一个线路逐位发送或接收,可以减少通信所需的线路数目。
2. UART串口通信:UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)的简称,是一种最常用的串口通信方式,通常用于单片机与计算机、单片机与单片机之间的通信。
3.串口模块:串口模块是负责将数据转变为串行传输的硬件模块,包括发送端和接收端。
通过设置波特率、数据位、校验位和停止位等参数,可以实现数据的可靠传输。
4.单片机串口通信:单片机内部集成了UART串口通信接口,只需要通过相应的寄存器配置,可以实现串口通信功能。
5.双机串行通信:双机串行通信是通过串口将两台单片机进行连接,一台单片机作为发送端,负责将数据发送出去;另一台单片机作为接收端,负责接收并处理发送的数据。
三、实验器材与软件1.实验器材:两台单片机、USB转TTL模块、杜邦线若干。
2. 实验软件:Keil C51集成开发环境。
四、实验内容与步骤1.配置发送端单片机(1)连接单片机和USB转TTL模块,将USB转TTL模块的TXD端连接到单片机的P3口,将GND端连接到单片机的地线。
(2)在Keil C51环境下创建新工程,编写发送端程序。
(3)配置串口通信的波特率、数据位、校验位和停止位,并打开串口发送中断。
(4)循环发送指定的数据。
2.配置接收端单片机(1)连接单片机和USB转TTL模块,将USB转TTL模块的RXD端连接到单片机的P3口,将GND端连接到单片机的地线。
(2)在Keil C51环境下创建新工程,编写接收端程序。
(3)配置串口通信的波特率、数据位、校验位和停止位,并打开串口接收中断。
RS-485/422标准的UART在DSP系统中的实现

南京 209) 1 6 0
( 东南大学仪器科学与工程系
摘
要: Ⅱ公 司的 T S2 V 5 1 D P投有片上 的通用异 步串 口( A T , 要在 T 30 C 4 6为 C U的系 统 中使 M 30 C 46型 S U R )若 MS2V 5 1 P
用 UR , A T 必须 另行 设计 。在 分析 T S2 V 5 1 M 30 C 46的多 通道同步缓 冲串 口( c S ) M B P 与通用 串 口芯 片 MA 3d X1 O接 口原理的基
匝五] - - . 匝互卜 一
T S2V 5 1 系统 中实现 的 U R M 30 C46 A T设计方 案 , 该 U R 是 R 一 8/ S 42电气标准的, AT S 45R 一 2 波特率高
” k 垂 : “ n 匝 卜- ?
.
达 20 , 3K 适合远距离的高速全双工串口通信。
在设计惯性组件 ( 陀螺仪 和加速度计 ) A D 的 /
模式进行设计的, 以有必要以适 当的篇幅介绍一 所
下 Mc S 。 B P
转换板时 , 因为要并行 的高速采集 6 个通道 ( 个 3 陀螺仪 和 3 个加速 度计 ) 的模 拟量 , 以要求 C U 所 P
有较 高 的 运 行 速 度 , 者 采 用 了 r 笔 l 1公 司 的 S2V 5 1 型 D P 3O C46 S 。在该 A D转换板上 , / 必不 可少地要进行 通信接 口的设计 , T S2V 51 但 M 30 C46 没有像大多数单片机一样提供片上 的通用异步串
( eam n o s u et c ne&E g erg otes U i rt,Nni 2 09 ) D pr et fnt m n Si c t I r e ni i ,Su a n e i n n h t v sy aj g 106 n
dsp实验报告

实验五直流电机控制实验一、实验目的1. 要求学生掌握2407 通用IO 口的使用方法;2. 掌握2407 对直流电机的控制。
二、实验设备1. 一台装有CCS 软件的计算机;2. DSP 实验箱(插上电机模块);3. DSP 硬件仿真器;4. 示波器。
三、实验原理电机模块的原理图如下四、实验步骤连接好仿真器、实验箱、计算机;上电复位后正常进入后,载入程序,全速运行,可以查看电机运行状况,观察直流电机的速度和方向指示灯。
实验六步进电机控制实验一、实验目的1. 掌握2407 通用IO 口的使用方法;2. 掌握2407 对步进电机的控制。
二、实验设备1. 一台装有CCS 软件的计算机;2. DSP 实验箱(插上电机模块);3. DSP 硬件仿真器;4. 示波器。
三、实验原理步进电机工作原理,给步进脉冲电机就转,不给脉冲电机就不转,步进脉冲的频率越高,步进控制电机就转的越快;改变各相的通电方式可以改变电机的运行方式;改变通电顺序可以控制步进电机的运行方式;改变通电顺序可以控制步进电机的正反转。
步进电机的控制问题可以总结为两点:1. 产生工作方式需要的时序脉冲;2. 控制步进电机的速度使它始终遵循加速-匀速-减速的规律工作。
对于I/O 口有二类寄存器:1. 控制寄存器和数据方向寄存器,使用方法如下:首先确定引脚的功能,即IO控制器寄存器,为1 表示引脚功能是原模块的功能,否则为IO 功能。
2. 如果引脚被配置为 IO 功能,就需要确定它的方向:输入还是输出,。
为1 表示是输出引脚,否则是输入引脚。
对于IO 功能的输入或输出是通过读写相应的数据方向寄存器来实现。
输入引脚对应读操作;输出引脚对应写操作。
四、实验步骤连接好仿真器、实验箱,计算机;上电复位后,正常进入后,将源程序载入实验箱,全速运行。
观察步进电机的运转。
实验三数码管控制实验一、实验目的1. 熟悉2407 的指令系统;2. 熟悉74HC573 的使用方法。
基于DSP实验系统的串口通信

课程设计报告( 2014 -- 2015年度第二学期)课程名称:DSP课程设计题目:基于DSP实验系统的串口通信院系:电子与通信工程系班级:电子学号:学生姓名:指导教师:设计周数: 2成绩:日期:2015 年7月16日一、课程设计的目的与要求1.设计方案:通过TMS320C5509A的串口与电脑进行通信,利用串口调试助手发送数据,由DSP接收到,DSP读到收到数据进行下一步的让四位LED灯亮,实现数据的通信,并在lcd12864上显示发送的数据,还有显示拨码开关的数值。
2.设计指标:电脑只能发送0~15,因为读出数据的时候比较方便解码,比如发送4就可以直接给LED直接赋值,让第三个灯亮,也就是一般的二进制转换。
二、设计正文1.设计思路(系统组成介绍)串口模块:TL16C550 是一个标准的串口接口芯片,它的控制寄存器基地址为0x400200,寄存器占用TMS320VC5509 的8 个地址单元。
串口中断与TMS320VC5509 的INT0 连接。
用户可以使用TMS320VC5509 的中断0 响应串口中断。
TL16C550 有11 个寄存器,这11 个寄存器是通过TMS320VC5509 的3 个地址线(A3~A1)和线路控制寄存器中的DLAB 位对它们进行寻址的。
板上加上16C550、Max232 和驱动电路。
驱动电路主要完成将输出的0-3.3V 电平转换成异步串口的工作电平,转换电平的工作由MAX232 芯片完成,但由于它是5V 器件,所以它同DSP 间的信号线必须有电平转换,此板采用的是74LVC245。
实验箱上的液晶模块采用的型号是TJDM12864MTJDM12864M 是一款带中文字库的图形点阵模块,由动态驱动方式驱动128×64 点阵显示。
低功耗,供应电电压范围宽。
内含多功能的指令集,操作简易。
采用COB 工艺制作,结构稳固,使用寿命长。
特性:1.提供 8 位,4 位及串行接口可选2.64×16 位字符显示 RAM(DDRAM 最多 16 字符×4 行,LCD 显示范围 16×2 行)3.2M 位中文字型 ROM(CGROM),总共提供 8192 个中文字型(16×16 点阵)4.16K 位半宽字型 ROM(HCGROM),总共提供 126 个西文字型(16×8 点阵)5.64×16 位字符产生 RAM(CGRAM)6.15×16 位总共 240 点的 ICON RAM(ICONRAM)7.自动复位(RESET)功能8.绘图及文字画面混合显示功能9.提供多功能指令:——画面清除(display clear)——游标归位(return home)——显示开/关(display on/off)——游标显示/隐藏(cursor on/off)——字符闪烁(display character blink)——游标移位(cursor shift)——显示移位(display shift)——垂直画面旋转(vertical line scoll)——反白显示(By-line reverse display)——睡眠模式(sleep mode)DSP与LCD的连接:3.软件设计流程:4.在试验箱上模拟实现用随实验箱附带的串口线(两端均为9 孔“D”形插头)连接计算机com1 或com2 插座和ICETEK–VC5509-A 板上标准RS-232 插座,编译、下载、运行。
DSP实验五、TMS320F28335-串口通信实验

TMS320F28335串口通信实验实验目的:掌握TMS320F28335串口的使用;实现功能:1、与电脑232 接口通讯,波特率9600 8N1;2、电脑发送数据,开发板原数据返回;基础知识:TMS320F28335的3个功能相同的SCIA、SCIB、SCIC模块,都可以看做是UART串口;每个串口各有一个接收器、一个发送器。
接收器和发送器各有一个16级深度的FIFO,他们都还有自己的使能和中断位。
若要使SCI模块工作,DSP需要做如下设置:◆使用GPIOMUX寄存器将对于的GPIO设置为SCIx功能;◆将sysclkout经过低速预定标器之后输出低速时钟LSPCLK供给SCIx;◆使能SCIx相关时钟,即PCLKCR寄存器中的SCIxENCLK置1;◆通信格式、波特率、需要用到FIFO的情况,可以使能FIFO、使能中断等;实现步骤:1、初始化串口IO引进为串口功能;开发板串口连接图,如上图,XRnW为SCITXDA、GPIO35复用引脚;XZCS0n为SCIRXDA、GPIO36复用引脚;2、设置串口相关寄存器、波特率等;3、设置串口中断接收函数;4、设置串口查询发送函数;遇到的问题:1、中断发生后,要记得清PIEACK中断响应寄存器,否则只中断一次,以后再也不进入中断了,串口中断在读数据后会自动清中断标志。
每个外设中断响应后,一定要对PIEACK的相关位进行软件复位,否则同组内的其他中断都不会被响应。
2、了解SCI功能应参考《MS320x2833x, 2823x Serial Communications Interface (SCI)》3、串口端口IO设置成内部上拉、Rx端还应设为异步输入;具体SCI部分程序如下:/** ======= sci_uart ========*** Created on: 2017年9月19日* Author: liu*/#include"DSP2833x_Device.h"// DSP2833x Header File#include"DSP2833x_Examples.h"// DSP2833x Examples Include File#include"sci_uart.h"__interrupt void sciaRxIsr(void);/** ======== sci_uart_init ========*/void SCIA_uart_init(void){//GPIO35、36复用功能选择EALLOW;GpioCtrlRegs.GPBMUX1.bit.GPIO35 = 1 ; //SCIA_TXDAGpioCtrlRegs.GPBMUX1.bit.GPIO36 = 1 ; //SCIA_RXDAGpioCtrlRegs.GPBPUD.bit.GPIO35 = 0; // Enable pull-up for GPIO29 (SCITXDA)GpioCtrlRegs.GPBPUD.bit.GPIO36 = 0; // Enable pull-up for GPIO28 (SCIRXDA)//定义管脚为异步输入GpioCtrlRegs.GPBDIR.bit.GPIO36 = 0 ;//输入GpioCtrlRegs.GPBQSEL1.bit.GPIO36 = 3;//异步输入EDIS;//基本通信参数设置// Note: Clocks were turned on to the SCIA peripheral// in the InitSysCtrl() functionSciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback// No parity,8 char bits,// async mode, idle-line protocolSciaRegs.SCICTL1.all =0x0003; // enable TX, RX, internal SCICLK,// Disable RX ERR, SLEEP, TXWAKESciaRegs.SCICTL2.all =0x0003;SciaRegs.SCICTL2.bit.TXINTENA =0; //查询发送SciaRegs.SCICTL2.bit.RXBKINTENA =1;//中断接收SciaRegs.SCIHBAUD=488>>8;// 9600 135MHz@LSPCLK = 33.75MHz /(9600*8)-1=4394 150MHz@LSPCLK = 37.5MHz /(9600*8)-1=488SciaRegs.SCILBAUD=488;SciaRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset// Initialize the SCI FIFO 禁止FIFO功能SciaRegs.SCIFFTX.bit.SCIFFENA = 0 ; //禁止SCI FIFO功能EALLOW;// This is needed to write to EALLOW protected registersPieVectTable.SCIRXINTA = &sciaRxIsr;EDIS;// This is needed to disable write to EALLOW protected registersPieCtrlRegs.PIEIER9.bit.INTx1=1;// PIE Group 9, int1IER |= M_INT9;// Enable CPU INTEINT;}void SCIA_UART_Send_Byte( unsigned char Dat){while(SciaRegs.SCICTL2.bit.TXRDY !=1);//等待SCIRXBUF准备好才写入下一个所要发送的数据SciaRegs.SCITXBUF = Dat;}//SCIA串口中断接收处理函数__interrupt void sciaRxIsr(void){if(SciaRegs.SCIRXST.bit.RXRDY == 1){SCIA_UART_Send_Byte( SciaRegs.SCIRXBUF.bit.RXDT );}PieCtrlRegs.PIEACK.all=PIEACK_GROUP9;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验八、UART串口通信实验
一、实验目的
1. 了解RS232通信接口的基本原理;
2. 熟悉通信接口芯片(TL16C550C)在DSP I/O空间寄存器的地址映射
及工作原理;
3.了解异步通信中串口模式选择、设置数据传输格式、设置波特率、建立连接、传输数据和断开连接等功能。
二、实验设备
1. 集成开发环境CCS
2. 实验开发板TMS320VC5402DSK、RS232接口电缆线及附件
3.程序“串口调试程序v2.2.exe”
三、实验内容及步骤
实验操作流程参照前面实验。
1 在汇编环境调试Uart:(实现字符或文件的发送和回发功能)
a. 实验代码main.s54、uartasm.cmd和uart_init.s54、dsp_init.s54
以及uartasm.h54,c5402_dsk.gel(说明同前)。
b. 串口调试程序“串口调试程序v2.2.exe” , 汇编调试中Build
option设置情况与CODEC实验中的汇编调试设置及出错情况相同。
c. 程序文件介绍:
1)“uart.h54”定义了一些寄存器的地址以及函数类型。
2)“dsp_init.s54”与dsp工作有关的寄存器ST1、PMST、IMR、IFR和SWWSR,并且清除INTM位以及设定时钟模式。
3)“uart_init.s54”先检测UART模块是否工作正常,然后设定UART模块的寄存器,如CNTL1、CNTL2、LCR、MSB&LSB(设定波特率)、FCR、IER 等。
4)“main.s54”主程序查看标志位,检测是否UART存在有效接收数据。
若有,则执行一定的处理,包括亮LED以及将接收的数据从UART回发。
d. 执行程序时,只要发送数据时,可在串口调试程序的接收窗口立即看到回发的数据。
e. 程序中UART工作参数设置如下:
1)波特率9600(或更低)、无数据校验、字符长度8比特、停止位1、
2 均可;
2) 接收区自动清空不选、十六进制显示可选可不选;发送区不能选十六进制发送,可发送字符和文件两种方式;
3) IER允许数据就绪中断和线路状态中断;
4) FIFO不使能,所以,在用串口程序调试时,只能单个字符发送,如“x”。
若采用16进制发送,应2位发送,如“a4”。
f. 用汇编语句编写UART应用程序基本步骤:
1)在UART初始化程序中设置UART寄存器,特别是IER、LCR、FCR 和除数寄存器LSB&MSB;并且检测UART工作是否正常。
2)设置寄存器CNTL2,选择UART作为信号源,这也放在UART初始程序中。
3)在DSP初始程序中设定DSP工作方式,这主要通过设置寄存器ST1、ST0、INTM、IFR、SWWSR、PMST、IMR、CLKMD等。
4)编写主程序和中断程序,通常在中断程序中把数据从UART中读到CPU,然后在主程序中对数据进行处理。
2 用C函数库调试Uart: (通过UART串行口实现对DSK板的控制)
a. 实验代码uartc.c、5402.cmd和c5402_dsk.gel,另外还有库函数drv5402.lib、dsk5402.lib、rts.lib以及头文件board.h、mcbsp54.h、regs54xx.h、regs.h、type.h、uart.h。
b. 串口调试程序“串口调试程序v2.2.exe”,混合编程下Build option 中Autoinit Model用Load-time Initialization或Run-time Initialization 及No Initializationc均为0 Errors, 0 Warnings。
但用No Initializationc 与C的编译环境不符,将做不出实验结果。
c. 程序中UART工作参数与汇编调试设置相同。
运行程序后,串口程序窗口会出现提示“Select a leed to light? 0/1/2,Or,press 5 to end the program ”,这是通过函数“uart_fputs()”输出的。
在键入指定的数字时,相应的LED将亮大约一秒钟。
d. 本程序中用到了如下驱动函数,分别为:
1)brd_init(int):dsk板初始化,输入参数是工作主频;
2)uart_init(void):uart模块初始化,不带参数,不过在调用前需设定好一些全局变量,如波特率、字长、停止位、校验方式、fifo控制方式、数字环使能等;
3)uart_fputs(string):向uart输出字符串;
4)uart_fgetc():从uart中读取一个字符;
5)brd_led_enable(BRD_LED):打开指定的led;
6)brd_led_disable(BRD_LED):关闭指定的led。
e. 程序中还自定义了一些函数:
1)void delay(int):实现延时功能;
2)int initpro(struct uartset):初始化uart模块,其中结构体参量定义了uart的一些工作参数;
3)void lightled(void):按照用户的选择亮相应的led灯。
f. 此外,TI公司还提供了许多函数方便对uart的使用,这些函数的使用说明见头文件“uart.h”。
g. 看懂源程序,修改实现发送字符“3”后同时点亮3个LED灯,或实现字符或文件的发送及回发功能。
四:实验结果和思考题:
1、RS232通信接口的基本原理:EIA-RS-232C 对电器特性、逻辑电平和各种信号线功能都作了规定。
在TxD和RxD上:
逻辑1(MARK)=-3V~-15V
逻辑0(SPACE)=+3~+15V
在RTS、CTS、DSR、DTR和DCD等控制线上:
信号有效(接通,ON状态,正电压)=+3V~+15V
信号无效(断开,OFF状态,负电压)=-3V~-15V
2、程序中UART工作参数设置如下:
1)波特率9600(或更低)、无数据校验、字符长度8比特、停止位1、2 均可;
2) 接收区自动清空不选、十六进制显示可选可不选;发送区不能选十六进制发送,可发送字符和文件两种方式;
3) IER允许数据就绪中断和线路状态中断;
如图所示:
struct uartset uartset1;
uartset1.baudset= UART_BAUD_9600;
uartset1.wordLengthset= UART_WORD8;
uartset1.stopBitset= UART_STOP1;
uartset1.parityset= UART_DISABLE_PARITY;
uartset1.fifoControlset= UART_FIFO_DISABLE;
uartset1.loopEnableset= UART_NO_LOOPBACK;
五:实验心得:
这次实验内容主要是了解了RS232通信接口的基本原理,以及对异步通信中串口模式选择、设置数据传输格式、设置波特率、建立连接、传输数据和断开连接等功能的熟悉。
由于对串口调试助手有过了解,对于程序的改写和串口调试助手的操作很快就完成了。