17、江科大stm32视频学习笔记——USART串口协议和USART串口外设
目录
1、通信接口
2、 硬件电路
3、电平标准
4、串口参数及时序
5、USART简介
6、USART工作
(1)写操作
(2)读操作
(3)帧头和帧尾的添加和除由电路自动执行
(4)硬件数据控制流
(5)中断输出控制(USART)
(6)波特率发生器
7、USART基本结构
8、数据帧
9、波特率发生器
1、通信接口
• 通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统• 通信协议:制定通信的规则,通信双方按照协议规则进行数据收发
异步:需要双方约定一个频率
2、 硬件电路
• 简单双向串口通信有两根通信线(发送端 TX 和接收端 RX )• TX 与 RX 要交叉连接• 当只需单向的数据传输时,可以只接一根通信线• 当电平标准不一致时,需要加电平转换芯片
两个设备之间的GND一定要接在一起,但是VCC可以各自接
3、电平标准
• TTL 电平: +3.3V 或 +5V 表示 1 , 0V 表示 0• RS232 电平: -3~-15V 表示 1 , +3~+15V 表示 0• RS485 电平:两线压差 +2~+6V 表示 1 , -2~-6V 表示 0 (差分信号)
4、串口参数及时序
• 波特率:串口通信的速率速率的参数就是波特率,波特率就是每秒传输码元的个数,单位是码元/s(baud)比特率:每秒传输的比特数,单位是bit/s,或者是bps在二进制的情况下,一个码元及时一个bit,此时波特率等于比特率• 起始位:标志一个数据帧的开始,固定为低电平• 数据位:数据帧的有效载荷, 1 为高电平, 0 为低电平,低位先行• 校验位:用于数据验证,根据数据位计算得来• 停止位:用于数据帧间隔,固定为高电平
- 字节装载在数据帧中,数据帧由起始位、数据位、停止位组成
- 数据位有8个,代表一个字节的8位置,可以在最右边加一个奇偶校验位,则数据位总共是9位。接收方在接收数据后,会验证数据位和校验位
- 若规定发送的波特率是1000bps,表示1s要发1000位,每一位的时间就是1ms,发送方每隔1ms发送一位,接收方每隔1ms接受一位,决定了每隔多久发送一位
- 空闲状态下,起始位为高电平,起始位给低电平,使其产生下降沿,表示数据帧要开始
5、USART简介
• USART: 通用同步 / 异步收发器• USART 是 STM32 内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从 TX 引脚发送出去,也可自动接收 RX 引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里.• 自带波特率(一般设置为9600/115200)发生器,最高达 4.5Mbits/s• 可配置数据位长度( 8/9 )、停止位长度( 0.5/1/1.5/2 )• 可选校验位(无校验 / 奇校验 / 偶校验)• 支持同步模式、硬件流控制、 DMA 、智能卡、 IrDA 、 LIN同步模式:多了个时钟CLK的输出• STM32F103C8T6 USART 资源: USART1(APB2总线上的设备) 、 USART2(APB1)、 USART3(APB1)
6、USART工作
(1)写操作
当数据移位完成后,数据会立刻自动从TDR发送移位寄存器
TDR和移位寄存器的双重缓存,保证在连续发送数据时,数据帧之间不会有空闲,提高了工作效率
(2)读操作
因为串口协议规定是低位先行,所以接收移位寄存器时从高位往低位方向移动
(3)帧头和帧尾的添加和除由电路自动执行
(4)硬件数据控制流
A向B发送数据,当A一直发,B处理不过来;若无硬件控制流,B只能抛弃新数据或者覆盖元数据;有硬件控制流,硬件电路上会多出一条线,B没准备好置高电平,准备好置低电平;A收到B的反馈决定数据发送,防止因为B处理慢而导致数据丢失。
能接收的时候,RTS就置低电平,请求对方发送,对方的CTS接收到后,就可以一直发
处理不过来时,RTS就置高电平,对方的CTS接收到后,就会暂停发送
(5)中断输出控制(USART)
TXE发送寄存器空,RXNE接收寄存器非空,是判断发送状态和接收状态的必要标志位
中断输出控制就是配置中断是不是能通向NVIC
(6)波特率发生器
波特率发生器是分频器,APB时钟进行分频,得到发送和接收移位的时钟
时钟输入时fPCLKx(x=1或2),USART1挂载在APB2,所以就是PCLK2的时钟,为72M
其他的USART挂载在APB1,就是PCLK1的时钟,为36M
之后对时钟进行分频,除以USARTDIV的分频系数,分频后再除以16,得到发送器时钟和接收器时钟,通向控制部分
若TE=1,发送器使能,发送部分的波特率就有效
若RE=1,接收器使能,接收部分的波特率有效
7、USART基本结构
8、数据帧
有8位字长和9位字长,分别可以选择有校验和无校验
9位建议有校验,8位建议无校验
停止位有0.5,1,1.5,2,建于选择1位
9、波特率发生器
发送器和接收器的波特率由波特率寄存器BRR里的DIV确定
计算公式:波特率 = fPCLK2/1 / (16 * DIV)//内部有16倍波特率的采样时钟
配置USART1为9600的波特率
9600=72M(USART1的时钟)/(16*DIV)
DIV=72M/9600/16=468.75(二进制:11101 0100.11)
用库函数配置,需要多少波特率直接写就行
17、江科大stm32视频学习笔记——USART串口协议和USART串口外设相关推荐
- 7、江科大stm32视频学习笔记——中断的应用:对射式红外传感器计次旋转编码器计次
目录 1.标志位函数 2. 初始化的中断的步骤 3.对射式红外传感器计次 (1)接线图 (2)CountSensor.c (3)main.c 4.旋转编码器计次 (1)接线图(旋转编码器接在PB1.P ...
- 14、江科大stm32视频学习笔记——AD单通道和AD多通道代码
目录 一.程序现象 1.AD单通道 2.AD多通道 二.原理图 三.AD单通道 1.AD.c(单次转换非扫描) 2.改为连续转换非扫描 3.main.c 四.AD双通道(单次转换非扫描) 1.思路 2 ...
- 江哥MySQL视频学习笔记--第10章 MySQL存储过程和函数70-MySQL-批量数据处理(掌握)
需求: 往数据库里存储一万条数据 实现方案: 1.写一万条insert into语句 2.将insert into语句封装到存储过程或者函数中 将来怎么使用? 是配合其它SQL语句使用, 还是单独使用 ...
- USART串口协议和USART串口外设(USART串口发送串口发送和接收)
1.通信接口 A.基本概念 • 通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统 • 通信协议:制定通信的规则,通信双方按照协议规则进行数据收发 异步:需要双方约定一个频率 B.数据通信方 ...
- mysql入门很简单系列视频-学习笔记
mysql入门很简单系列视频-学习笔记 视频链接:mysql入门很简单系列视频 https://www.bilibili.com/video/av14920200/ 以前主要就了解DDL.DML.DC ...
- 尚硅谷+黑马程序员MongoDB视频学习笔记(一)
本学习笔记是来源于学习B站上的尚硅谷和黑马的MongoDB教学视频而做的知识总结. 一.数据库(Database) 数据库是按照数据结构来组织.存在和管理数据的仓库.说白了,数据库就是存在数据的仓库. ...
- 6 个月从 0 学会英语 - 视频学习笔记
6 个月从 0 学会英语 - 视频学习笔记 https://www.bilibili.com/video/av11910967 Chris Lonsdale - 龙飞虎 01 建立准确的习惯,投资足够 ...
- 影像组学视频学习笔记(43)-标准差、标准误及95%置信区间CI、Li‘s have a solution and plan.
作者:北欧森林 链接:https://www.jianshu.com/p/f09d0f97592f 来源:简书,已获授权转载 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(43)主要 ...
- 影像组学视频学习笔记(42)-影像组学特征提取问题解决过程复现、Li‘s have a solution and plan.
作者:北欧森林 链接:https://www.jianshu.com/p/c3e6de2f79b3 来源:简书,已获转载授权 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(42)主要 ...
最新文章
- mysql事务的4大特性
- io_service work 的作用
- DataSource绑定DataTable.Select()显示system.data.DataRow问题解决的方法
- Flume实操(一)【监控端口数据官方案例】
- 基于gstreamer的支持动态获取多路流的rtsp server(笔记)
- 小程序源码:首席省钱赚钱专家微信小程序源码下载,淘宝客 外卖侠 外卖cps 首席多多客 八合一小程序源码
- php 随机经纬度,随机像mariadb插入10万数据,包括经纬度以及调用百度map API获取...
- android 应用市场发布以及流程(非原创)
- python中国大学慕课网_高级语言程序设计(Python)中国大学慕课搜题网站
- 京东商城系统架构设计原则
- 斜面怎么计算机械效率,初中物理斜面的机械效率学习方法
- 用Java写PTA 7-11 设计一个能处理异常的Loan类
- java左手画圆右手画方_左手画圆右手画方900字作文
- 【矩阵论】4. 矩阵运算——广义逆——减号逆
- 2021-2027中国工业机械电动执行器市场现状研究分析与发展前景预测报告
- 虚言妙诀终虚见,面试躬行是致知,Python技术面试策略与技巧实战记录
- 资深Android开发带你入门Framework,深夜思考
- python输入数学表达式并求值_Python 条件表达式求值
- 中国联通国家数据中心广州太阳广场IDC机房(四星级)
- 神经网络中“端到端”思想