名称 | 引脚 | 常用在 | 双工 | 时钟 | 电平 | 设备 |
---|---|---|---|---|---|---|
USART | TX、RX | 单片机和pc,单片机和单片机 | 全双工 | 异步 | 单端 | 点对点 |
I2C | SCL、SDA | 单片机和单片机 | 半双工 | 同步 | 单端 | 多设备 |
SPI | SCLK、MOSI、MISO、CS | 单片机和单片机 | 全双工 | 同步 | 单端 | 多设备 |
CAN | CAN_H、CAN_L | 智能汽车 | 半双工 | 异步 | 差分 | 多设备 |
USB | DP、DM | 半双工 | 异步 | 差分 | 点对点 |
串口通信(RS232/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高电平代表停止位
STM32的USART的同步功能只是多了个IO口支持时钟信号输出,但是不支持时钟信号输入,这个同步模式更多的是为了,兼容别的协议或者特殊用途而设计的,并不支持两个USART之间进行同步通信。
STM32的USART基本结构
波特率发生器 的时钟来源是 APB2/APB1
STM32F1有5个串口,3个USART,2个UART
<