硬件:
原生串口通信采用TTL电平进行通信,但是为了使串口和更多的设备,增加了一些电平转换芯片,野火F407上主要的串口通信方式主要有以下三种
1、RS232标准
2、USB转串口
3、原生串口到串口
RS232标准:
RS232主要用于工业设备直接通信,对外的接口是DB9。
USB转串口:
主要用于开发板与电脑之间的通信,在电脑端需要安装相应的驱动才能正常使用。一般的串口电平转换芯片有CH340、PL2303、CP2102、FT232
原生的串口通信主要是控制器和串口设备或者传感器之间的通信,比如GPS GSM 串口转WIFI模块
-------------------------------------------------------分界线---------------------------------------------------------
软件:
串口数据主要包括起始位、有效数据位、校验位(可选)和停止位。
起始位有一个逻辑0表示
结束位由0.5 1 1.5 或2个逻辑1的数据位表示
有效数据位紧接着起始位,常常被约定为8位
校验位 可选择
校验的方法主要有
1-奇校验(数据位和校验位1的个数为奇数) 2-偶校验(数据位和校验位1的个数为偶数)
0校验(校验位为0) 1校验(校验位为1) 无校验(没有校验位)
-------------------------------------------------------分界线---------------------------------------------------------
串口通信的功能框图讲解:
串口通信芯片主要向外引出6个引脚,分别为TX、RX、CLK(同步通信是需要用到)、SW_RX智能卡模式用到(很少用) nRTS nCTS(硬件流相关,很少用)。主要用到TX、RX两个引脚
ps:如何找到引脚对应GPIO
STM32F4XX数据手册——Pinouts and pin description 记录了所有GPIO引脚的全部功能
硬件连接时现将IO连接到对应的TX RX 再在软件上使能 板子上的IO口是原始的TTL电平串口通信,二开发板上利用跳线帽将IO连接的另一端标注着TX RX 的东西USB转串口的电平转换器
-------------------------------------------------------分界线---------------------------------------------------------
串口通信数据发送的具体流程
发送数据寄存器-----------> 发送移位寄存器 ------------->TX(GPIO)
当发送数据寄存器全转移后,有一个标志位会变成空(txe),并会触发中断 。当全部发出去时,TC标志位会变成空
串口通信数据接收的具体流程
接收位移寄存器--------->接收数据寄存器
当数据全部接收后 RXNE标志位会发生变化
(以上所有标志位的变化均由控制寄存器控制)
控制寄存器
USART_CR1 主要功能有:确定传输字长,使能,中断使能,唤醒,奇偶校验控制使能
USART_CR2 时钟使能
USART_CR3 半双工选择,低功耗智能卡模式 DMA模式使能等
波特率计算公式
波特率 = (时钟频率/(8*(2 - OVER8)*USARTDIV)) OVER8 过采样模式 CR1控制 USARTDIV无符号定点数由波特率寄存器控制