首页 > 其他分享 >STM32学习(六)USART串口协议

STM32学习(六)USART串口协议

时间:2024-04-05 15:58:05浏览次数:22  
标签:USART 引脚 串口 低电平 STM32 寄存器 数据

一、通信接口

1.通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统。

2.通信协议:制定通信的规则,通信双方按照协议规则进行数据收发。

STMF103C8T6支持以下通信协议

 如果需要蓝牙无线遥控功能,陀螺仪加速度计测量姿态的功能,STM32没有,只能通过外挂芯片完成,这时就需要将两个设备用通信线连接,完成数据交换,从而实现读取外挂模块数据和控制外挂模块的目的。

图中 TX(或TXD)为数据发送脚,RX(或RXD)为数据接收脚,SCL,SCLK为时钟,SDA是数据。MOSI是主机输出数据脚,MISO是主机输入数据脚。CS是片选,用于指定通信的对象。CAN_H和CAN_L是差分数据脚,用两个引脚表示一个差分数据。DP(D+)和DM(D-)也是一对差分数据脚。

二、串口通信

1.串口是一种应用十分广泛的通讯接口,串口成本低容易使用,通信线路简单、可实现两个设备的互相通信。

2.单片机的串口可以使单片机和单片机、单片机和电脑、单片机和各种各样的模块互相通信、极大的扩展了单片机的应用范围,增强了单片机系统的硬件实力。

三、硬件电路

1.简单双向串口通信有两根通信线(发送端TX和接收端RX)

2.TX和RX要交叉连接

3.当只需要单向的数据传输时,可只接一根通信线

3.当电平标准不一致时,需要加电平转换芯片

注:电平标准时数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种。

a.TTL电平:+3.3v或+5v表示1,0v表示0.

b.RS232电平:-3~-5v表示1,+3~+5v表示0

c.RS485电平:两线压差+2~+6v表示1,-2~-6v表示0(差分信号,抗干扰能力强)

 四、串口参数及时序

波特率:串口通信的速率

起始位:标志一个数据帧的开始,固定为低电平

数据位:数据帧的有效荷载,1为高电平,0为低电平,低位先行

校验位;用于数据验证,根据数据位计算得来(无校验、奇校验、偶校验、CRC校验)

停止位:用于数据帧间隔,固定为高电平

 五、USART简介

USAR:通用同步/异步收发器

USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,并存放在寄存器里

USART自带波特率发生器,最高达4.5Mbits/s,相当于分频器

可配置的数据位长度(8或9),停止位长度(0.5或1或1.5或2),数据位长度如上图所示,如果需要校验位就设置9,不需要就设置8.停止位决定了波的间隔,一般用1。

可以选择无校验、奇校验和偶校验三种

STM32的USART资源: USART1、 USART2、 USART3

六、USART框图

功能引脚

TX: 发送数据输出引脚。

RX: 接收数据输入引脚。

SW_RX: 数据接收引脚,只用于单线和智能卡模式,属于内部引脚,没有具体外部引脚。

nRTS: 请求以发送(Request To Send),n表示低电平有效。如果使能RTS流控制,当USART接收器准备好接收新数据时就会将nRTS变成低电平; 当接收寄存器已满时,nRTS将被设置为高电平。该引脚只适用于硬件流控制。

nCTS: 清除以发送(Clear To Send),n表示低电平有效。如果使能CTS流控制,发送器在发送下一帧数据之前会检测nCTS引脚, 如果为低电平,表示可以发送数据,如果为高电平则在发送完当前数据帧之后停止发送。该引脚只适用于硬件流控制。

SCLK: 发送器时钟输出引脚。这个引脚仅适用于同步模式。

STM32F103VET6系统控制器有三个USART和两个UART,其中USART1和时钟来源于APB2总线时钟,其最大频率为72MHz, 其他四个的时钟来源于APB1总线时钟,其最大频率为36MHz。UART只是异步传输功能,所以没有SCLK、nCTS和nRTS功能引脚。

控制器

USART有专门控制发送的发送器、控制接收的接收器,还有唤醒单元、中断控制等等。 使用USART之前需要向USART_CR1寄存器的UE位置1使能USART,UE位用来开启供给给串口的时钟。

发送或者接收数据字长可选8位或9位。

发送器

一个字符帧发送需要三个部分:起始位+数据帧+停止位。起始位是一个位周期的低电平,位周期就是每一位占用的时间; 数据帧就是我们要发送的8位或9位数据,数据是从最低位开始传输的;停止位是一定时间周期的高电平。

接收器

如果将USART_CR1寄存器的RE位置1,使能USART接收,使得接收器在RX线开始搜索起始位。 在确定到起始位后就根据RX线电平状态把数据存放在接收移位寄存器内。接收完成后就把接收移位寄存器数据移到RDR内, 并把USART_SR寄存器的RXNE位置1,同时如果USART_CR2寄存器的RXNEIE置1的话可以产生中断。

RE

接收使能

RXNE

读数据寄存器非空

RXNEIE

接收完成中断使能

标签:USART,引脚,串口,低电平,STM32,寄存器,数据
From: https://blog.csdn.net/2401_82790121/article/details/137245758

相关文章

  • STM32F1系列硬件I2C移植MPU6050DMP库
    目录前言STM32CubeMX配置过程工程移植与使用前言配置好硬件I2C拿过来直接用就行,一点也不用改这段时间在移植正点原子的MPU6050的库函数,网络上的教程大部分都是标准库同时也是软件模拟I2C的形式,这里我把正点原子的函数移植成了HAL库的硬件I2C的,下面会附带工程源码STM3......
  • STM32入门篇(LED、蜂鸣器和面包板简介)
    LED·LED:发光二极管,正向通电点亮,反向通电不亮·引脚长的一端为正极,短的一端为负极·以下两张图,是用STM32GPIO口驱动LED灯 R1作用:①防止LED因为电流过大而烧毁 ②调整LED的亮度           低电平驱动的电路(低点亮)      ......
  • 基于STM32蓝牙控制小车系统设计(一)
    项目介绍    “基于stm32f4的蓝牙控制小车”是一个基于意法半导体与ARM公司生产的STM32F4开发板的集电机驱动模块、电源管理模块、stm32f4主控模块、蓝牙串口通信模块、android控制端模块。电机驱动模块使用了两个L298N芯片来驱动4路电机,使能端连接4路来自......
  • 基于STM32蓝牙控制小车系统设计(三)
    主控板程序设计设计基于主控板(STM32)的程序通常包括以下几个关键步骤:项目规划和需求分析:确定项目的功能和需求,包括所需的传感器、执行器、通信接口等。制定软件开发计划,包括项目时间表、任务分配等。环境搭建:配置开发环境,包括安装集成开发环境(IDE)和相关工具链。配置主控板......
  • 基于keil搭建stm32项目
    1.下载stm32cube的固件包1.1进入st的官网ST官网传送门1.2查找固件包 1.3找到自己的硬件对应的系列的固件包 1.4选择固件包点击进入后,点击获取软件 1.5选择版本下载 2.创建项目相关的目录2.1创建项目相关的目录 2.2给Drivers添加相关的驱动文件或者目录......
  • 初探STM32f407VET6
    一、买到了板子,自己分析引脚功能我在某宝上买到一块stm32f407vet6的板子,图便宜,结果遇上了个态度差的客服。没有说明,没有资料。不能退换,只能自己想办法分析引脚在嘉里创找到了芯片原理图(LQFP-100封装),想着看走线猜引脚,结果拿着放大镜找了许久没有进展。这板子上有许多过孔,走线......
  • STM32FATFS(未完待续)
    注意,本博客适合像我一样的小白,会的不多,但是想快速做些东西,不适合会写驱动的大佬。另外,示例代码中的注释有误(从多个项目中移植过来的,未做更改),请不要被误导!!!【免费】stm32f103c8t6SD卡驱动(Fatfs)资源-CSDN文库一、copy源码,移植我在CSDN上找到了一位大佬用HAL库和fatfs实现stm32f......
  • STM32 | 通用同步/异步串行接收/发送器USART带蓝牙(第六天原理解析)
    STM32第六天一、 USART1、USART概念USART:(UniversalSynchronous/AsynchronousReceiver/Transmitter)通用同步/异步串行接收/发送器USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备处理器与外部设备通信的两种方式:u并行通信(八车道)......
  • 不到2000字,轻松带你搞懂STM32中GPIO的8种工作模式
    大家好,我是知微!学习过单片机的小伙伴对GPIO肯定不陌生,GPIO(generalpurposeinputoutput)是通用输入输出端口的简称,通俗来讲就是单片机上的引脚。在STM32中,GPIO的工作模式被细分为8种,对于初学者来讲,要理解它们可太难了!诶诶诶,给个机会,先别急着退出哈!这不是有我在呢,跟着这篇文......
  • 基于stm32云平台a42智能头盔(APP)物联网嵌入式软硬件开发单片机毕业源码案例设计
    (1)硬件端1.   加速度传感器:用于检测头部是否遭受冲击或碰撞,以触发警报。2.   气体传感器:用于检测有害气体浓度,如CO、CO2、NH3等,防止中毒和窒息等危险情况。3.   光敏传感器:用于检测光线强度,以便在光线昏暗的环境下提醒员工注意安全。4.   声音传感器:可用于......