STM32F103串口通信相关知识整理如下:
以下是理论知识,知道串口的相关知识。
一、基础概念 串行通信定义:串行通信是指数据一位一位地顺序传送,通过一根传输线(或一对线)完成数据的发送与接收。特点:数据位的传送按位顺序进行,最少只需一根传输线即可完成;成本低但传送速度较慢。优点:通信线路简单,适用于远距离通信。
关键参数
1. 波特率定义:波特率是系统在单位时间内传输的码元(电平)的个数。简单理解为每秒传输的bit的个数。举例:每秒传输9600个bit,则波特率为9600。2. 数据格式起始位:表示传输数据的开始,是帧数据的第一位。数据位:实际想要传输的数据,位于起始位之后和校验位、停止位之前。校验位:用于校验数据传送的正确性,可选奇校验或偶校验。停止位:表示一帧数据的结束。通信电平
TTL电平:适合近距离通信,一般只有几厘米。RS422、RS232、RS485:可用于远距离通信,但需要通过电平转化芯片与芯片连接。RS485:差分通信,支持多机通信,抗干扰性强,传输速度可以达到10Mb/s以上,传输距离可以达到3000米左右。通信过程
收发双方需约定好波特率、数据格式(数据位个数、停止位个数、是否使用校验位、奇校验还是偶校验)。发送方首先输出逻辑0(起始位信号),并保持一段时间;接收方检测到逻辑0后,开始准备接收数据。发送方根据数据的bit是0还是1,设置引脚电平,并保持一段时间;接收方读取引脚电平,得到数据。数据发送完毕后,发送方输出逻辑1(停止位信号),并保持一段时间,表示数据传输结束。
连接工控设备。
下面看F103的:
STM32F103通用同步1异步收发器(USART):USART1接口通信速率可达4.5兆位/秒,其他接口的通信速率可达2.25兆位/秒。USART接口具有硬件的CTS和RTS信号管理、支持IrDA SIRENDEC传输编解码、兼容ISO7816的智能卡并提供LIN主/从功能。
所有USART接口都可以使用DMA操作。
具体的寄存器:
SR USART 状态寄存器
DR USART 数据寄存器
BRR USART 波特率寄存器
CR1 USART控制寄存器1
CR2 USART控制寄存器2
CR3 USART控制寄存器3
GTPR USART 保护时间和预分频寄存器
库函数:
USART DeInit 将外设 USARTx 寄存器重设为缺省值
USART Init 根据 USART InitStruct 中指定的参数初始化外设 USARTx 寄存器
USART StructInit 把 USART InitStruct 中的每一个参数按缺省值填入
USART Cmd 使能或者失能 USART 外设
USART ITConfig 使能或者失能指定的 USART 中断
USART DMACmd 使能或者失能指定 USART 的 DMA 请求
USART SetAddress 设置 USART 节点的地址
USART WakeUpConfig 选择 USART 的唤醒方式
USART ReceiverWakeUpCmd 检查 USART 是否处于静默模式
USART LINBreakDetectLengthConfig 设置 USART LIN 中断检测长度
USART LINCmd 使能或者失能 USARTx 的 LIN 模式
USART SendData 通过外设 USARIX 发送单个数据
USART ReceiveData 返回 USARTx 最近接收到的数据
USART SendBreak 发送中断字
USART SetGuardTime 设置指定的 USART 保护时间
USART SetPrescaler 设置 USART 时钟预分频
USART SmartCardCmd 使能或者失能指定 USART 的智能卡模式
USART SmartCardNackCmd 使能或者失能 NACK 传输
USART HalfDuplexCmd 使能或者失能 USART 半双工模式
USART IrDAConfig 设置 USART IDA 模式
USART IrDACmd 使能或者失能 USART IrDA 模式
USART GetFlagStatus 检查指定的 USART 标志位设置与否
USART ClearFlag 清除 USARTx 的待处理标志位
USART GetITStatus 检查指定的 USART 中断发生与否
USART ClearITPendingBit 清除 USARTx 的中断待处理位
除了串口配置,F103的GPIO也要配:
串口配置: