PIC单片机学习—USART串口

article/2025/10/24 11:12:25

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:发送状态和控制寄存器
TXSTA寄存器解释RCSTA:接收状态和控制寄存器
RCSTA:接收状态和控制寄存器接收寄存器解释

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的电压与频率关系图。
PIC16F883/884/886/887 电压—频率关系图从上面的电压-频率关系图,我们可以看出,当PIC16F886使用3.3V电压时,如果配上12MHz晶振,单片机是无法正常工作的。


http://chatgpt.dhexx.cn/article/rDAyqAPy.shtml

相关文章

PIC单片机应用开发实践教程(四): MPLAB X IDE Debug

源码基于 PIC16F15355开发板,想了解详情,请点 PIC16F15355开发板 当程序写好后,我们就可以使用在线调试功能,验证代码的正确性。 1、打开工程 File - Open Project ,打开我们要调试的工程 2、打开工程属性&#xf…

PIC单片机

PIC芯片所用编译器是MPLAB X IDE,刚开始接触PIC单片机,也是一脸茫然,然后查阅资料逐渐了解、运用编译器,这里我就不说编译器怎么使用了,下面我将以PIC12LF1822芯片为例,简单来说说我见解,分别说…

PIC单片机应用开发实践教程(六): 代码配置器(MCC)

源码基于 PIC16F15355开发板,想了解详情,请点 PIC16F15355开发板 1、简介 MPLAB 代码配置器(MPLAB Code Configurator,MCC)通过图形用户界面(Graphical User Interface,GUI)生成驱…

【PIC】单片机基本概述

1. 公司 PIC 单片机是 Microchip(微芯) 公司的产品,始于1989年。 2. 精简指令集技术 传统的单片机采用复杂指令集(Complex Instruction Set Computer, CISC)结构,通常有50~110条。而 PIC 采用精简指令集&…

PIC单片机应用开发实践教程(二): 新建工程

源码基于 PIC16F15355开发板,想了解详情,请点 PIC16F15355开发板 1 打开MPLAB X IDE File---New Project Microchip Embedded --- Standalone Project 选择所用MCU对应型号 点击 Finish 后,工程就建好了 2 添加main.c文件 3 添加main.h文件 …

PIC单片机的入门认识(以PIC12为学习目标)

1.学习PIC12针脚定义 针脚1及针脚8可接电源5V和地线。针脚2.3可外接晶振。 针脚4为复位脚,当单片机正常运行时接高电平,若有一个低电平输入,单片机便复位。 针脚5则为单片机的I/O脚,可控制它为输入或输出,输入0&…

PIC单片机应用开发实践教程(七):PIC16F153xx——时钟使用

源码基于 PIC16F15355开发板,想了解详情,请点 PIC16F15355开发板 PIC16F15355 内部晶振框图如下,从框图中我们知道MCU时钟来源有3个:外部时钟,内部时钟,Timer1 内部时钟源(INTERNAL CLOCK SOUR…

PIC单片机入门教程(二)—— 安装集成开发环境(MPLAB X IDE)

PIC单片机入门教程(二)—— 安装集成开发环境(MPLAB X IDE) 教程中使用的电脑运行Windows 10 专业版 64位系统 1、下载 MPLAB X IDE v4.05 历史版本:http://www.microchip.com/development-tools/pic-and-dspic-downl…

PIC单片机-Mplab的使用与PIC单片机介绍

内容包括Mplab IDE与Mplab X IDE的使用,触摸功能实践,PIC单片机C与汇编混合编程,PIC单片机介绍等。紫色文字是超链接,点击自动跳转至相关博文。持续更新,原创不易! 目录: 一、Mplab IDE的使用…

PIC16F887 实战编程 单片机编程 基础实验教程

文章目录 2 PIC工程建立与仿真3 单片机基础寄存器操作:3.1 IO3.2 模拟输入电压读取3.3 外部中断3.4 定时器中断3.5 串口UART3.6 IIC通信 4 实际项目5 如何阅读代码6 如何把代码放到MPLAB V5.0xc8 v2.0上工作?6.1 短暂的回顾6.2 xc8 v2.0程序结构6.3 移植…

通俗易懂讲PIC单片机:从一窍不通到入门进步

单片机入门不难------谈PIC系列(转自矿石收音机论坛---崂山)十年前的老帖子,讲得通俗易懂,分享之。 请看图1 这个8条腿的小螃蟹就是我们的第一顿饭,只要把它吃下去,以后的大餐就好办了。第1、8条腿接电源 …

PIC单片机应用开发实践教程(五): 烧录器简介

源码基于 PIC16F15355开发板,想了解详情,请点 PIC16F15355开发板 ​​​​​​​ PIC单片机,无论是8位的10/12/16/18系列,还是16位PIC24/dsPIC33系列,常用的烧录器如下:PICkit3,PICkit4&#…

PIC单片机入门_C语言编程技术

1.为什么也是C语言? 用C 语言来开发单片机系统软件最大的好处是编写代码效率高、软件调试直观、维护升级方便、代码的重复利用率高等,因此C 语言编程在单片机系统设计中越来越广泛的运用。PIC 单片机的软件开发,同样可以用C 语言实现。 Micro…

PIC单片机与PIC单片机C语言编程简介

对于计算机学院与电子学院相关的同学来说,单片机一定不是一个陌生的概念。在大学的学习生涯中,经常用于教学的是MCS-51系列单片机。其实,除了MCS-51单片机外,还有一类单片机——PIC单片机。 PIC单片机,英文名为Periphe…

PIC单片机应用开发实践教程(三): MCU配置位与烧录

1 编译 工程建好并把相应的 .c和.h文件都加载到工程后,如下图 试试编译,如果没有语法错误,编译结果如下 到这里,是不是可以进行烧录了呢?不急,还有很重要的一个步骤,MCU配置位的设置&#xff0…

PIC单片机应用开发实践教程(一):MPLAB X IDE 开发环境安装

源码基于 PIC16F15355开发板,想了解详情,请点 PIC16F15355开发板 1 准备电脑一台 2 下载开发环境 MPLAB-X-IDE 点Download后,自动下载。 3 下载C编译器(以8位MCU用的xc8编译器为例) MPLAB XC8 Compiler 4 安装MP…

PIC单片机入门教程(一)—— 准备工作

PIC单片机入门教程(一)—— 准备工作 1、电脑一台(推荐运行Windows 7 旗舰版 64位系统) 2、选择合适的烧录/调试工具 2.1 “Device Support.html”文件列举了所有器件能支持哪些烧录/调试工具,文件官方版本说明包里 下…

PIC单片机入门教程(三)—— 安装编译器(MPLAB XC Compilers)

PIC单片机入门教程(三)—— 安装编译器(MPLAB XC Compilers) 1、下载编译器(MPLAB XC Compilers) XC8、XC16和XC32对应8位、16位和32位PIC单片机,按实际使用的单片机选择下载最新版本即可。 截…

PIC单片机入门教程(四)—— 第一个工程

PIC单片机入门教程(四)—— 第一个工程 1、新建工程 1.1 菜单栏“文件”->“新建项目” 1.2 “Microchip嵌入式”->“独立项目”->“下一步” 1.3 在器件栏直接输入你的单片机型号,这里以PIC12F675为例。输入“PIC12F675”->“下…

PIC单片机入门_指令系统

1.前文回顾 前面学习了PIC单片机的系统框架,也介绍了程序存储器、数据存储器的组织形式。这里需要补充一点的就是寻址方式,之前仅仅提到了立即数寻址、直接寻址。其实还有几个比较重要的寻址方式,PC相对寻址&间接寻址! 1.1 PC…