UART的收发数据操作介绍

电子说

1.2w人已加入

描述

PIC32MZEF一共有6个UART端口,资源还是比较丰富的。UART是比较常用的外设,特别是在调试的时候,串口打印信息很方便,测试起来很方便,这篇就来测试一下UART数据的发送和中断接收。

先来看看板卡原理图中的引脚接口,UART1和UART2都引出到接插件了,但是UART2的引脚用作OLED驱动使用了,我们就来测试UART1吧。

uart

uart

UART模块的主要特性有:

• 全双工8位或9位数据发送

• 偶校验、奇校验或无奇偶校验选项(对于8位数据)

• 一个或两个停止位

• 硬件自动波特率特性

• 硬件流控制选项

• 完全集成的波特率发生器(Baud Rate Generator,BRG),具有16位预分频器

• 在100 MHz时,波特率范围为76 bps至25 Mbps(PBCLK2)

•8级深先进先出(First-In-First-Out,FIFO)发送数据缓冲区

•8级深FIFO接收数据缓冲区

• 奇偶校验、帧和缓冲区溢出错误检测

• 支持仅在地址检测时中断(第9位 = 1)

• 独立的发送和接收中断

• 用于诊断支持的环回模式

•LIN协议支持

•IrDA编码器和解码器,具有用于支持外部IrDA编码器/解码器的16倍频波特率时钟输出

先来看看UART的内部框图

uart

下面详细说一下UART的配置。打开MHC,打开HarmonyFramework Configuration》Drivers》USART。在“Use USARTDrive?”之前的选择框中打勾。使能UART外设功能。

uart

1,Driver Implementation:这个有动态和静态的可以,我们这里选择动态的。

2,中断模式选择使能,这里打钩,表示使能中断。

3,Number of USART Driver Instances:选择需要的USART实例的数量,根据“Number of USART Driver Instances” 对话框中的数量,会产生“USARTDriver Instance N”(N = 0,1,2…)。

展开“USART Driver Instance N”(N = 0,1,2…),根据应用的需要,对每个USART实例的静态驱动程序进行配置。

4,USART Module ID:选择ID1,就是使用的UART1,这里可以选择1-6。

5,Buad Rate:波特率设置,这里我们设置为19200

6,发送中断优先级设置,发送我一般使用查询方式,而接收使用中断方式,所以这里发送选择禁止中断。

7,接收中断优先级设置,InterruptPriority和Interrupt Sub-priority这两项是选择中断优先级。每个向量有7个用户可选的优先级,每个优先级内有4个用户可选的次优先级。

8,Operation Mode:模式选择,模式有IrDA模式,正常模式,地址检测模式,环回模式。我们选择正常模式就可以了。

9,Line Control:数据格式选择,数据位有8,9位,校验有奇校验,偶校验,无校验,停止位有1,2位。我们选择N81数据格式。

10,Handshake Mode:握手模式,有单工模式,流控制模式和正常模式。我们选择正常模式。

11,Power State:用来选择UART可以运行在哪些节能模式下,这里选择FULL表示所有模式下都可以运行。

打开引脚设置窗口,进行48,69两个引脚设置,设置成UART引脚

uart

uart

点击生成代码,选择自动覆盖以前的程序

uart

看了生成后新的工程文件

uart

在APP.H文件里增加一些变量定义

uart

还是把中断函数直接移到APP.C下面,再编写程序。下篇的话再介绍如何使用回调函数进行程序的编写。App.c中增加函数,程序。程序收到一个字节数据后立马回发,并在显示屏上显示接收到的字节数

uart

uart

uart

上位机测试软件,上电后先发个55,AA

uart

显示效果和硬件接线,直接使用的是TTL转USB转接头

uart

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分