/
...
/
/
USART
Search
Try Notion
USART
一.简介
USART: Universal asynchronous receiver-transmitter 通用 异步 串行
其他协议层串行接口
🖼️协议层接口
Embed anything (PDFs, Google Docs, Google Maps, Spotify…)
SPI(Serial Peripheral Interface): 同步全双工 SCK(Serial Clock串行时钟) MOSI(Master Out Slave In)MISO CS(Chip/Slave Select)
🤔为何片选端经常低有效~CS?
考虑电路中敷铜为地,接入地网络是最方便的
IIC: 同步半双工: SCL(Serial Clock Line串行时钟线) SDA(Serial Data Line 串行数据)
针对USART的物理层:
RS232: +-15V 负逻辑(-15V代表逻辑1)3线全双工—短距(15M)低速
RS422: +-6V 差分4线全双工 点对多—长距抗干扰
RS485: +-6V 2线半双工 多点双向—多个收发
二.标准库形式
串口配置
GPIO口配置
输出: GPIO_Mode_AF_PP 复用(Auxiliary Function)推挽输出
输入: 选择浮空输入
NVIC_Init
IRQ通道选择(IRQChannel)及使能(IRQChannelCmd)
IRQ优先级(PreemptionPriority)及子优先级(NVIC_IRQChannelSubPriority)
串口中断使能: USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
USART_Init
帧格式
波特率: BaudRate
字长: WordLength
停止位: StopBits
校验位: Parity
收发模式
收发模式: USART_Mode = USART_Mode = USART_Mode_Rx | USART_Mode_Tx
串口流控制: HardwareFlowControl 一般选择None
相当于多两根控制线的串口RTS(Request To Send 接收端→发送端) CTS(Clear to Send)
串口使能 USART_Cmd(USART1, ENABLE);
串口中断的通用格式
创立状态机变量: static u8 state (也可通过全局变量,来暴露接口,方便手动指定状态)
创立数据接受缓存: u8 Res
先判断中断: if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) {...}
读取数据到缓存区 Res =USART_ReceiveData(USART1)
判断操作