【STM32】学习笔记(串口通信)

串口通信

  • 通信接口
  • 硬件电路
  • 电平标准
  • USART
  • USART框图

通信接口

在这里插入图片描述
串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信
单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大地扩展了单片机的应用范围,增强了单片机系统的硬件实力。

硬件电路

在这里插入图片描述

电平标准

电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种(其他需要电平转换信号):

TTL电平:+3.3V或+5V表示1,0V表示0
RS232电平:-3-15V表示1,+3+15V表示0
RS485电平:两线压差+2+6V表示1,-2-6V表示0(差分信号)–抗干扰强
在这里插入图片描述
比特率:每秒传递的比特的位数。
波特率:每1ms传递多少位。
低位先行:类似入栈出栈,例如F0,就发送0F.
校验位:简单的是奇偶校验,复杂的有CRC校验
在这里插入图片描述
1、1/9600=104us,每个间隔
2、低位先行

USART

USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步收发器
USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里。
自带波特率发生器,最高达4.5Mbits/s
可配置数据位长度(8/9)、停止位长度(0.5/1/1.5/2)
可选校验位(无校验/奇校验/偶校验)
支持同步模式、硬件流控制(判断是否准备好数据发送)、DMA(数据转运)、智能卡(饭卡、公交卡)、IrDA(红外通信)、LIN(局域网)

STM32F103C8T6 USART资源: USART1(APB2)、 USART2(APB1)、 USART3(APB1)

USART框图

在这里插入图片描述
TX、RX发送接收脚;
发送、接收数据寄存器(TDR、RDR)同一个地址;
发送移位寄存器:TXE标准位;将发送寄存器的数据一个一个的移位发送。发送完,下一组数据转到发送移位寄存器。
流控:能不能接受或发送(了解),RTS连接CT。
唤醒单元:可以连接多个设备,根据地址选择发送的设备
波特率发送器控制:分频
CR/SR:器件标志位。
引脚必须按照下面的表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9位字长一个校验
8位字长无校验,保证最少发送一个字节
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/67245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出AXI协议(5)——数据读写结构读写响应结构

目录 一、前言 二、写选通(Write strobes) 三、窄传输(Narrow transfers) 1、示例1 2、示例2 四、字节不变性(Byte invariance) 五、未对齐的传输(Unaligned transfers) 六…

MySQL基本查询

MySQL基本查询 表的增删查改Create(增)Retrieve(查)select列全列查询指定列查询查询字段为表达式为查询结果指定别名结果去重 where 条件英语不及格的同学的英语成绩语文成绩在 [80, 90] 分的同学及语文成绩数学成绩是 58 或者 59 或者 98 或者 99 分的同…

华为云服务

【计算】 弹性云服务器ECS 弹性云服务器(Elastic Cloud Server,ECS)是由CPU、内存、操作系统、云硬盘组成的基础的计算组件。弹性云服务器创建成功后,您就可以像使用自己的本地PC或物理服务器一样,在云上使用弹性云服…

【C#项目实战】控制台游戏——勇士斗恶龙(1)

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,最近开始正式的步入学习游戏开发的正轨,想要通过写博客的方式来分享自己学到的知识和经验,这就是开设本专栏的目的。希望…

因为axios请求后端,接收不到token的问引出的问题

vue axios请求后端接受不到token的问题。 相关概念 什么是跨域? 跨域指的是在浏览器环境下,当发起请求的域(或者网站)与请求的资源所在的域之间存在协议、主机或端口中的任何一个条件不同的情况。换句话说,只要协议、…

ubuntu下Anaconda安装与使用教程

前言 好久没用anaconda了,还记得之前用anaconda的欢乐时光。pytorch和paddlepaddle(飞浆),怀念,可生活(换了ubuntu系统之后)教会了我残忍(可能很难有机会再用windows的anaconda了)。找个时间&a…

爬虫源码---爬取小猫猫交易网站

前言: 本片文章主要对爬虫爬取网页数据来进行一个简单的解答,对与其中的数据来进行一个爬取。 一:环境配置 Python版本:3.7.3 IDE:PyCharm 所需库:requests ,parsel 二:网站页面 我们需要…

Java设计模式:四、行为型模式-07:状态模式

文章目录 一、定义:状态模式二、模拟场景:状态模式2.1 状态模式2.2 引入依赖2.3 工程结构2.4 模拟审核状态流转2.4.1 活动状态枚举2.4.2 活动信息类2.4.3 活动服务接口2.4.4 返回结果类 三、违背方案:状态模式3.0 引入依赖3.1 工程结构3.2 活…

欧科云链研究院探析Facebook稳定币发行经历会不会在PayPal重演

引言 作者最近的报告-探析PayPal发行稳定币是否会重蹈Facebook覆辙-近期被英国的金融时报(中文版)刊登。由于该报告在欧科云链研究院内部反响较好,下面就带大家简单的剖析这篇报告的主要内容。 *这篇文章主要由对比分析(已删减&a…

网络编程 day 7

1、将.txt表数据导入数据库中 #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr,"__%d__:",__LINE__);\perror(msg);\ }while(0)int main(int argc, const char *argv[]) {//以只读的方式打开dict.txt文件FILE* fd;if((fdfopen("./dict.txt&q…

20230831-完成登录框的按钮操作,并在登录成功后进行界面跳转

登录框的按钮操作&#xff0c;并在登录成功后进行界面跳转 app.cpp #include "app.h" #include <cstdio> #include <QDebug> #include <QLineEdit> #include <QLabel> #include <QPainter> #include <QString> #include <Q…

Python操作Excel教程(图文教程,超详细)Python xlwings模块详解,

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;小白零基础《Python入门到精通》 xlwings模块详解 1、快速入门1、打开Excel2、创建工作簿2.1、使用工作簿2.2、操作…

【css】z-index与层叠上下文

z-index属性用来设置元素的堆叠顺序&#xff0c;使用z-index有一个大的前提&#xff1a;z-index所作用元素的样式列表中必须有position属性并且属性值为absolute、relative或fixed中的一个&#xff0c;否则z-index无效。 层叠上下文 MDN讲解 我们给元素设置的z-index都是有一…

面试中的时间管理:如何在有限时间内展示最大价值

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

SVN 集中式版本管理平台

1. SVN 命令行工具下载地址 https://www.visualsvn.com/downloads/ 2. 下载SVN 命令行工具后&#xff0c;解压后就可以了&#xff0c;不需要安装的 3. 将bin 文件添加到系统环境变量中&#xff0c;不知道怎么打开系统环境变量的自己问度娘 4. 添加到系统环境变量中&#xff0c;…

21.CSS的动态圆形进度条

效果 源码 <!doctype html> <html><head><meta charset="utf-8"><title>Animated Circular Progress | CSS Only</title><link rel="stylesheet" href="style.css"></head><body><di…

K8S自动化运维容器Docker集群

K8S&#xff1a;K8S自动化运维容器化(Docker)集群 一.k8s概述 1.k8s是什么 &#xff08;1&#xff09;K8S全程为Kubernetes&#xff0c;由于K到S直接有8个字母简称为K8S。 &#xff08;2&#xff09;版本&#xff1a;目前一般是1.18~1.2.0&#xff0c;后续可能会到1.24-1.2…

「解析」YOLOv5 classify分类模板

学习深度学习有些时间了&#xff0c;相信很多小伙伴都已经接触 图像分类、目标检测甚至图像分割(语义分割)等算法了&#xff0c;相信大部分小伙伴都是从分类入门&#xff0c;接触各式各样的 Backbone算法开启自己的炼丹之路。 但是炼丹并非全是 Backbone&#xff0c;更多的是各…

为C# Console应用化个妆

说到Windows的cmd&#xff0c;刻板印象就是黑底白字的命令行界面。跟Linux花花绿绿的界面比&#xff0c;似乎单调了许多。但其实C#开发的Console应用也可以摆脱单调非黑即白的UI。 最近遇到个需求&#xff0c;要在一堆纯文本文件里找指定的关键字&#xff08;后续还要人肉判断…

LMD-恶意软件检测工具

LMD是Linux恶意软件扫描器&#xff0c;以GNU GLPv2许可发布。 官方地址&#xff1a;https://www.rfxn.com 下载软件包命令&#xff1a; wget https://www.rfxn.com/downloads/maldetect-current.tar.gz tar命令解包后进入其目录。 安装命令如下&#xff1a; ./install.sh …