串口通讯实验报告(word文档良心出品).doc

串口通讯实验报告(word文档良心出品).doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

实验一串口通讯实验

一.实验的主要内容:

了解并掌握UART相关寄存器的功能,熟悉系统硬件的UART的相关的接口,修改处理器的串口通讯程序,监视串行口并将接受到的字符回送。

二.实验的问题以及解决方法:

1在程序编译完成后,烧入到ARM的过程中,出现了驱动问题。

答:在option选项中,选择debugger选项,并且将其中的dirver改为J-Link即可。

2在开始时,设置的波特率为115200,ARM上电后,计算机超级终端出现了上电初始化信息,并且提示我们是选择linux还是选择vivi。但后来我们修改程序后,将波特率改为57600时,重新上电,超级终端不再显示上电初始化信息了。

答:出现这个问题的原因是每当断电再上电后,处理器恢复了默认设置,默认设置中,波特率为115200,这与我们在超级终端上设置的57600不匹配,于是不会出现上电初始化信息,甚至有时还会出乱码。所以,我们修改波特率的时候,不应该断电,即开始上电的时候,使用的波特率为115200,等上电结束,选择vivi后,再修改波特率为57600,然后在不断电的情况下重新实验

三.实验的思考:

3.1232串行通讯的数据格式是什么?

串行通信包括空闲位,数据位,可选的奇偶校验位,停止位。

3.2串行通讯最少需要几根线,分别如何连接?

两根线,但是最好加上GND

连接方式:

3.3ARM的串行口有几个,相应的寄存器是什么?

ARM自带三个UART端口,每个UART通道都有16字节的FIFO(先入先出寄存器)用于接受和发送。

MODEM控制寄存器UMCONn

UART线控制寄存器包括ULCON0,ULCON1和ULCON2,主要用来选择每帧数据位数、停止位数,奇偶校验模式及是否使用红外模式

UART控制寄存器包括UCON0,UCON1andUCON2,主要用来选择时钟,接收和发送中断类型(即电平还是脉冲触发类型),接收超时使能,接收错误状态中断使能,回环模式,发送接收模式等。

UART错误状态寄存器包括UERSTAT0,UERSTAT1andUERSTAT2,此状态寄存器的相关位表明是否有帧错误或溢出错误发生在UART模块中有三个接收/发送状态寄存器,包括UTRSTAT0,UTRSTAT1和UTRSTAT2。

在UART模块中有3个UART发送缓冲寄存器,包括UTXH0,UTXH1和UTXH2,UTXHn有8位发送数据

在UART模块中有3个UART接收缓冲寄存器,包括URXH0,URXH1和URXH2,URXHn有8位接收数据。

UART包括三个波特率因子寄存器UBRDIV0,UBRDIV1andUBRDIV2,存储在波特率因子寄存器(UBRDIVn)中的值决定串口发送和接收的时钟数率(波特率)

总的来说,有以下几个寄存器:

线路控制寄存器ULCONn

控制寄存器UCONn

FIFO控制寄存器UFCONn

MODEM控制寄存器UMCONn

状态寄存器UTRSTAT

错误状态寄存器UERSTAT

FIFO状态寄存器UFSTAT

发送寄存器UTXH和接收寄存器URXH

波特率因子寄存器UBRDIV

3.4用中断方式实现串口驱动。

去除UFCON_FIFO_EN,使得FIFO被屏蔽UMCON_AFC使能

如图如果AFC使能了,硬件会自己控制nRTS而不是用软件控制

控制寄存器将UCON_TX_INT和UCON_RX_INT都变为1,如图,是1的话则接收发送数据时会产生中断,里面提到要非FIFO模式,所以上述提到要将FIFO关掉

文档评论(0)

135****1100 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档