STM32学习之通信协议1 USART

在这里插入图片描述

在这里插入图片描述
时钟特性,比如发送一个波形高电平,然后低电平,接收方怎么知道是1、0还是1、1、0、0 ?
这就需要有一个时钟信号来告诉接收方什么时候需要采集数据。时钟特性分为同步和异步。
I2C和SPI有单独的时钟线,所以它们是同步的,接收方可以在时钟信号的指引下进行采样。
串口、CAN和USB没有时钟线,所以需要双方约定一个采样频率,这就是异步通信,并且还需要加一些帧头、帧尾等,进行采样位置的对齐

USART
在这里插入图片描述

USART可以单片机到单片机、单片机到电脑、单片机到各式各样的模块间通信,极大拓展了单片机的应用范围,增强了单片机系统的硬件实力;I2C/SP是芯片间通信

在这里插入图片描述
起始位:标志一个数据帧的开始,固定为低电平
首先串口的空闲状态是高电平,也就是没有数据传输的时候,引脚必须要置高电平,作为空闲状态。然后需要传输的时候,必须要先发送一个起始位。这个起始位必须是低电平,来打破空闲状态的高电平产生一个下降沿,这个下降沿就告诉接收设备,这一帧数据要开始了

停止位:用于数据帧间隔,固定为高电平
停止位也是为下一个起止位做准备的。如果没有停止位,当数据最后一位是0的时候,下次再发动新的一帧,是不是就没法产生下降沿了,这就是起始位和停止位的作用

校验位:用于数据验证,串口使用的是奇偶校验

在这里插入图片描述

串口的参数
波特率:这是串口通信的速率,串口一般是使用异步通信,所以需要双方约定一个通信速率。比如每隔一秒发送一位,就也得每隔一秒接收一位。如果接收快了,就会重复接收某些位。如果接收慢了,就会漏掉某些位,所以说发送和接收必须要约定好速率。这个速率参数就是波特率。波特率的意思是每秒传输码元的个数。单位是码元每秒,或者直接叫波特。

另外还有个速率表示叫比特率。比特率的意思是每秒传输的比特数,单位是bit/s或者叫bps。

二进制调制的情况下,一个码元就是一个比特,此时波特率就等于比特率。单片机的串口通信基本都是二进制调制,也就是高电平表示1低电平表示0,一位就是1bit。所以说这个串口的波特率经常会和比特率混用,不过这也是没关系的,因为这两个说法的数值相等,如果是多进制调制,波特率就和比特率不一样了。

反映到波形上,比如我们双方规定波特率为1000bps,就表示一秒要发1000位,每一位的时间就是一毫秒,发送方每隔一毫秒发送一位,接收方每隔一毫秒接收一位,这就是波特率,它决定了每隔多久发送一位

理论详细来源江科大笔记
/

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

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

相关文章

Arduino 小白的 DIY 空气质量检测仪(3)- TVOC模块、CO2模块

接上回 逐个分析 m_TVOC.h #include <Arduino.h>#include <SoftI2C.h>#include "DFRobot_SGP40.h"// TVOC指数 // 型号&#xff1a;sgp_40 // 接口&#xff1a;VCC->VCC(5V)、GND->GND、SDA->D6、SCL->D7、WAK->GND // 协议&#xff1…

主数据驱动的数据治理框架

目录 数据资产分类 数据治理的重要性 数据质量框架的4个方面 数据治理的核心是加强对数据资产的管控,通过深化数据服务,持续创造价值。数据治 理是在数据资产价值创造的过程中,治理团队对数据资产管理的评价、指导、控制,如下图所示。 数据资产分类 数据资产划分成为主数据…

【大模型实战篇】LLaMA Factory微调ChatGLM-4-9B模型

1. 背景介绍 虽然现在大模型微调的文章很多&#xff0c;但纸上得来终觉浅&#xff0c;大模型微调的体感还是需要自己亲自上手实操过&#xff0c;才能有一些自己的感悟和直觉。这次我们选择使用llama_factory来微调chatglm-4-9B大模型。 之前微调我们是用两块3090GPU显卡&…

AnnotationConfigApplicationContext流程看实例化的beanPostProcessor

接上一篇https://blog.csdn.net/qq_26437925/article/details/144865082 探究一下beanPostProcessors怎么加进来的 目录 首先register(annotatedClasses);后添加了重要的beanDefinition: ConfigurationClassPostProcessorinvokeBeanFactoryPostProcessors(beanFactory);执行后…

pip 下载安装时使用国内源配置

pip 是 Python 的包管理工具&#xff0c;用于安装和管理第三方库。然而&#xff0c;在某些情况下&#xff0c;默认的 PyPI&#xff08;Python Package Index&#xff09;源可能由于网络原因导致下载速度慢或者连接不稳定。幸运的是&#xff0c;我们可以轻松地配置 pip 使用国内…

LinuxC高级day4

作业: 1.思维导图 2.终端输入一个C源文件名(.c结尾)判断文件是否有内容&#xff0c;如果没有内容删除文件&#xff0c;如果有内容编译并执行改文件。 3.终端输入两个文件名&#xff0c;判断哪个文件的时间戳更新

RuoYi-Vue从http升级为https(Jar+Nginx)

一、前提条件 1.已通过数字证书管理服务控制台签发证书。 2.SSL证书绑定的域名已完成DNS解析,即域名与主机IP地址相互映射。 附:阿里云网站运维检测平台 3.已在Web服务器开放443端口(HTTPS通信的标准端口)。 如果使用的是阿里云ECS服务器,请确保已经在安全组规则入方向…

OpenCV相机标定与3D重建(39)计算校正畸变后的新相机内参矩阵函数getOptimalNewCameraMatrix()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 根据自由缩放参数返回新的相机内参矩阵。 cv::getOptimalNewCameraMatrix 是 OpenCV 库中的一个函数&#xff0c;用于计算校正畸变后的新相机内…

OkHttp深度解析:请求流程、分发器机制、拦截器工作及TCP连接复用

目录 一、OkHttp请求的请求流程是怎样的? 二、OkHttp分发器是怎样工作的? 2.1 请求队列与线程池维护 2.2 异步请求处理 2.3 同步请求处理 2.4 请求执行 2.5 请求完成处理&#xff1a; 2.6 线程池设计 三、OkHttp拦截器是如何工作的? 四、应用拦截器和网络拦截器的…

云计算课程报告实验-WordCount算法实验 过程记录

内容描述 本实验指导书通过在华为鲲鹏上&#xff0c;编译运行WordCount程序。完成实验操作后&#xff0c;读者会掌握简单的程序编写&#xff0c;如WordCount中的getWords、countWords、treeMerge。 实验环境 华为鲲鹏云主机、openEuler 20.03操作系统&#xff1b;安装mpich-3…

2018年全国硕士研究生入学统一考试管理类专业学位联考英语(二)试题-纯享题目版

&#x1f3e0;个人主页&#xff1a;fo安方的博客✨ &#x1f482;个人简历&#xff1a;大家好&#xff0c;我是fo安方&#xff0c;目前中南大学MBA在读&#xff0c;也考取过HCIE Cloud Computing、CCIE Security、PMP、CISP、RHCE、CCNP RS、PEST 3等证书。&#x1f433; &…

kafka使用常见问题

连接不上kafka,报下边的错 org.apache.kafka.common.KafkaException: Producer is closed forcefully.at org.apache.kafka.clients.producer.internals.RecordAccumulator.abortBatches(RecordAccumulator.java:760) [kafka-clients-3.0.2.jar:na]at org.apache.kafka.client…

Jenkins(持续集成与自动化部署)

Jenkins 是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具。 官网&#xff1a;https://www.jenkins.io/ GitLab安装使用 安装前提&#xff1a;内存至少需要4G 官方网站&#xff1a;https://about.gitlab.com/ 安装文档&#xff1a;https://docs.gitlab.c…

MyBatis执行一条sql语句的流程(源码解析)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 MyBatis执行一条sql语句的流程&#xff08;源码解析&#xff09; MyBatis执行sql语句的流程加载配置文件加载配置文件的流程 创建sqlsessionFactory对象解析Mapper创建sqlses…

【C++】探索C++11中的范围for循环与auto关键字

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;1. 范围for循环的基础用法1.1 什么是范围for循环&#xff1f;1.2 示例代码代码解析 1.3 范围for的特点传统for循环与范围for循环对比 1.4 使用引用修改元素 &#x1f4af;2…

mac下载Homebrew安装nvm

通过Homebrew安装 - 国内下载地址 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"安装nvm brew install nvm 配置nvm环境变量 export NVM_DIR“$HOME/.nvm” [ -s “/usr/local/opt/nvm/nvm.sh” ] && . “/usr/…

解決當前IP地址僅適用於本地網路

想要解決“當前IP地址僅適用於本地網路”其實並不困難。本篇文章將介紹其發生的原因以及如何解決。 “僅限本地網路”是什麼意思&#xff1f; 當IP地址為“僅限本地網路”時&#xff0c;意味著設備正在使用私人網路內部IP地址&#xff0c;但無法連接到互聯網。如果將本地IP視…

HANA数据库 XS 503 Service not available

http_url配置正确 在将单个数据库系统转换为多租户数据库容器系统之后&#xff0c;无法通过URL访问新租户数据库的独立XS引擎服务。调用相应的URL会产生这样的错误&#xff1a;503服务不可用 Solution &#xff08;启用租户数据库引擎的嵌套模式&#xff08;HDD不用&#xff…

【大模型实战篇】Mac本地部署RAGFlow的踩坑史

1. 题外话 最近一篇文章还是在11月30日写的&#xff0c;好长时间没有打卡了。最近工作上的事情特别多&#xff0c;主要聚焦在大模型的预训练、微调和RAG两个方面。主要用到的框架是Megatron-DeepSpeed&#xff0c;后续会带来一些分享。今天的文章主要聚焦在RAG。 近期调研了一系…

推荐5款局域网IP扫描工具,支持电脑+Android!

在日常网络管理中&#xff0c;快速扫描局域网中的设备和IP地址是一项基本但非常重要的任务。无论是排查网络问题还是进行设备管理&#xff0c;一款好用的 IP 扫描工具都能让你事半功倍。 如何选择适合自己需求的局域网 IP 扫描工具&#xff1f;有哪些功能强大又易于上手的工具…