UART0信实验——查询方.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
班 级 学号 姓 名 同组人 实验日期 室温 大气压 成 绩 UART0通信实验——查询方式 一、实验目的 通过实验,掌握URAT0中断程序设计,能够理解通过串口0接受上位机发送的字符串,然后送回上位机显示。 二、实验设备 电脑一台,ARM7实验开发板,AXD仿真软件 三、实验内容 使用串口接收上位机发送的数据。使能UART0 的串口0进行数据发送/接收,接收采用中断处理方式。程序流程如下图所示: 主程序开始 从UART0接收 主程序开始 字节数据 P0.0、P0.1引脚连接UART0: 有新数据 串口初始化:设置波特率; 设置数据格式(包括数据位、停止 为和奇偶校验位) 从接收寄存器读取数据 从上位机接收字符串并保存 从上位机接收字符串并保存 接收字节数据完成 接收字节数据完成 向串口0发送数据 从UART0接收字节数据 从UART0接收字节数据 主程序结束 四、实验原理 使用查询方式进行通信,CPU必须不停地查询相应的标志位,将会占用CPU很多时间,效率较低;而采用中断方式进行通信,则可以避免这些问题。 UxIIR【3:0】=0110:“奇偶错等错或间断”中断,则从线路状态寄存器中读取状态位,分析具体错误原因,处理。 UxIIR【3:0】=0100:“接收缓冲寄存器就绪”中断,则从接收缓冲寄存器中读取数据插入接收队列。 UxIIR【3:0】=0010:“发送保持寄存器空”中断,则从发送队列中读取数据写到发送保持寄存器中。 UxIIR【3:0】=1100:“字符超时指示”中断,进行处理。 中断服务处理子程序必须判断是否有尚未处理的中断。在处理完当前的中断源类型之后,不能立即退出服务,而应当继续判断UxIIR存器最低位是否为0。如果为0,则表示还有尚未处理的中断,应当继续根据UxIIR【3:0】判断中断源类型,进行处理;直到UxIIR的最低位为1,最后发送中断结束命令结束中断服务处理程序。 1、寄存器描述 UART0 包含10 个8 位寄存器,如下表所示。除数锁存访问位(DLAB)位于U0LCR 的bit7,它使能对除数锁存的访问。 其中,寄存器U0RBR 与U0THR 是同一地址,但物理上是分开的,读操作时为U0RBR,而写操作时为U0THR;寄存器U0DLL 与U0RBR/U0THR、U0DLM 与U0TER 具有同样的地址,如果要访问U0DLM、U0DLL,除数访问位DLAB 必须为1,若要访问U0RBR/U0THR、U0TER,则除数访问位DLAB 必须为0。U0DLM 和U0DLL 寄存器是波特率发生器的除数锁存器,用于设置合适的串口波特率;U0RBR 为数据接收缓冲,用于读取接收到的数据,若FIFO 使能,串口接收到的数据会压入FIFO 缓冲;U0THR 为发送保存,向此寄存器写入数据时,将会引起串口数据发送,若FIFO 使能,则数据会压入FIFO 缓冲。 通过线控制寄存器 U0LCR 设置串口工作模式,而U0FCR 则用于FIFO 使能或复位操作;当接收或发送数据时,会产生相应的状态标志位(U0IER);通过对U0IER 进行设置,可实现串口的发送、接收、出错中断等。U0IER 中的位0 为接收中断使能,位1 为发送中断使能,位2 为线状态中断使能(通信出错中断使能),若不使能相应的中断,则对应的中断标志不会产生,此时可以通过U0LSR 读取串口的状态判断串口操作是否完成或是成功。 附表: 2、波特率的计算 波特率的除数计算如下: rUBRDIV0=( (int)(mclk/16./baud + 0.5) -1 ) 五、实验操作步骤 1、在PC机上运行Windows自带的串口通信程序超级终端程序,或者其他串口通信程序

文档评论(0)

mv2323 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档