STM32通信协议 总集篇 (速记版)

名称 引脚 常用在 双工 时钟 电平 设备
USART TX、RX 单片机和pc,单片机和单片机 全双工 异步 单端 点对点
I2C SCL、SDA 单片机和单片机 半双工 同步 单端 多设备
SPI SCLK、MOSI、MISO、CS 单片机和单片机 全双工 同步 单端 多设备
CAN CAN_H、CAN_L 智能汽车 半双工 异步 差分 多设备
USB DP、DM 半双工 异步 差分 点对点

串口通信(RS232/485等)

RS232/422/485的公母头

现在电脑上一般都没有RS-232(DB9)接口,俗称串口接口,使用USB接口进行串口通信。

        RS-232电平直接连接到STM32上会烧掉芯片,也就是COMS/TTL电平不能与RS-232电平直接交换信息,需要一个电平转换芯片,阿波罗开发板选择的是 TP3232(也可以用 SP3232)。同时需要USB/串口转换电路芯片(CH340)

USART和RS232/485的联系和区别

狭义串口:指串口协议,就是时序图、数据收发先后顺序等,是抽象出来的协议;
广义串口:指符合串口协议的接口,UART、RS232、RS485在实际工作中都叫串口;
UART:主要指Soc端的串口控制器和引脚,也是串口编程主要考虑的;
RS232/485是两个Soc的串口引脚相连的中间电路,负责解决传输距离和电压不匹配问题;

串口协议规定了数据的传输时序

UART 是指 SOC 端 串口控制器 和 引脚

RS232/485 是电平标准,具体的通信协议都是串口协议,但是使用的电压范围、是电平信号还是差分信号等不同

USART

USART基本介绍

USART(Universal Synchronous/Asynchronous Receiver/Transmitter)

通用同步/异步收发器。

UART 就是异步收发器。通常很少用到 USART 的同步功能。

比特率每秒钟传输多少个比特位。对于接收方来说,意味着多久取一次电平数据。

波特率:每秒传输多少个码元。USART的码元就是比特,故比特率=波特率。

起始位下降沿+1bit低电平 代表起始位

数据位低位先行。可选5~9位,常用 8 位

校验位:奇/偶校验,数据位1的个数为奇/偶则置位。

停止位1bit高电平代表停止位

0x55,串口通信先传低位再传高位
0xff

        STM32的USART的同步功能只是多了个IO口支持时钟信号输出,但是不支持时钟信号输入,这个同步模式更多的是为了,兼容别的协议或者特殊用途而设计的,并不支持两个USART之间进行同步通信。

STM32的USART基本结构

image-20231204160825276
USART基本结构

波特率发生器 的时钟来源是 APB2/APB1

STM32F1有5个串口3个USART2个UART

USART1挂载在APB2总线(72MHZ),其他挂载在APB1总线(36MHZ)

        经过波特率发生器分频后的总线信号通向发送控制器接收控制器 。

        发送控制器和接收控制器用来控制发送数据寄存器发送移位寄存器接收数据寄存器接收移位寄存器(右移)。通过GPIO口的复用输出倒TX、RX引脚。

        当数据由数据寄存器转移

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值