PIC32MZEF一共有6个UART端口,资源还是比较丰富的。UART是比较常用的外设,特别是在调试的时候,串口打印信息很方便,测试起来很方便,这篇就来测试一下UART数据的发送和中断接收。
先来看看板卡原理图中的引脚接口,UART1和UART2都引出到接插件了,但是UART2的引脚用作OLED驱动使用了,我们就来测试UART1吧。
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的配置。打开MHC,打开HarmonyFramework Configuration》Drivers》USART。在“Use USARTDrive?”之前的选择框中打勾。使能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引脚
点击生成代码,选择自动覆盖以前的程序
看了生成后新的工程文件
在APP.H文件里增加一些变量定义
还是把中断函数直接移到APP.C下面,再编写程序。下篇的话再介绍如何使用回调函数进行程序的编写。App.c中增加函数,程序。程序收到一个字节数据后立马回发,并在显示屏上显示接收到的字节数
上位机测试软件,上电后先发个55,AA
显示效果和硬件接线,直接使用的是TTL转USB转接头
-
uart
+关注
关注
22文章
1227浏览量
101165
发布评论请先 登录
相关推荐
评论