PIC单片机学习—USART串口

PIC单片机学习—USART串口

最近做了几个项目都用到了PIC单片机,在这几个项目之前我只用到了51单片机和STM32来做控制类的项目,用PIC单片机的时候发现使用的时候和51单片机还是有所区别,有许多小坑需要注意,所以决定写几篇针对新手使用PIC单片机时可以参考学习的文章。

PIC单片机串口

    • **PIC单片机学习—USART串口**
  • 前言
  • 一、USART串口是什么?
  • 二、PIC单片机USART串口配置要点
    • 1.与串口相关寄存器
    • 2.异步模式配置步骤
  • 三、容易“踩坑”点
    • 1、IO口配置必须正确
    • 2、电压与晶振频率相匹配


前言

串口是使用频率非常高的通信接口,掌握串口是单片机项目必须技能


一、USART串口是什么?

USART:(Universal Synchronous/Asynchronous Receiver/Transmitter),通用同步/异步串行接收/发送器。
通用同步 / 异步收发器 (USART) 模块是两个串行 I/O 模块之一 , USART也称为串行通信接口或 SCI。
USART 可以配置为全双工异步系统,可与计算机等外设进行通信;也可配置为半双工同步系统,可与 A/D 或 D/A 集成电路,以及串行 EEPROM等外设器件进行通信。


二、PIC单片机USART串口配置要点

1.与串口相关寄存器

TXSTA:发送状态和控制寄存器
TXSTA:发送状态和控制寄存器
PIC单片机学习—USART串口_第1张图片RCSTA:接收状态和控制寄存器
RCSTA:接收状态和控制寄存器PIC单片机学习—USART串口_第2张图片

2.异步模式配置步骤

我们使用串口一般都使用异步模式,下面简单介绍异步配置步骤:
1.初始化SPBRGH和SPBRGL寄存器对以及BRGH和BRG16位,获得所需的波特率。
2.清零RX引脚的ANSEL位(如适用)。
3.将SPEN位置1使能串口。SYNC位必须清零才能进行异步操作。
4.如果需要中断,将PIE1寄存器的RCIE位以及INTCON寄存器的GIE和PEIE位置1。
5.如果需要接收9位数据,将RX9位置1。
6.将CREN位置1使能接收。
7.当字符从RSR被移入接收缓冲区时,RCIF中断标志位将被置1。如果RCIE中断允许位也置1,则产生中断。
8.读取RCSTA寄存器取得错误标志和第9个数据位(9位数据接收使能时)。
9.读取RCREG寄存器从接收缓冲区取得接收数据的低8位。
10.发生溢出时,通过清零CREN接收器使能位清零OERR标志位。


三、容易“踩坑”点

以下是我在实际使用中碰到的一些小问题,这几次都是调试了半天,最后猛的发现原来是这个问题,大家只要注意了就可以避免,望大家参考。

1、IO口配置必须正确

PIC单片机的串口一般都是与通用IO口复用,当启用串口功能时,一部分PIC单片机只要使能了串口收发功能,就会自动配置好TX及RX相关端口,不论TRIS三态寄存器相关为配置是输入或输出,TX及RX都可正常使用。但是PIC16LF1823的RX端口必须配置TRIS相关位为输入。
另外PIC的串口经常会和模拟口复用,这里必须要配置为数字口,否则会一直读为0.
总结,使用串口时,相关IO口必须配置为数字模式,同时TX配置为输出模式,RX配置为输入模式,这样的话,不论在哪种型号的单片机上都可以正常使用,就不会出现预期外的问题。

2、电压与晶振频率相匹配

使用PIC单片机时必须要注意单片机工作在不同的电压时,所能使用的晶振频率是有区别的,大家一定要注意查看相对应芯片数据手册,一般是在电气规范章节中。不过电压和频率配置不对,单片机无法正常工作。比如,下面PIC1LF886的电压与频率关系图。
PIC单片机学习—USART串口_第3张图片从上面的电压-频率关系图,我们可以看出,当PIC16F886使用3.3V电压时,如果配上12MHz晶振,单片机是无法正常工作的。

你可能感兴趣的:(PIC单片机,单片机,经验分享)