1.uart串口通信
1.1uart的通信总线方式
1.2查询开发板和数据手册对需要进行修改的串口进行设置
例如STM32MP157aaa
1.设置8bit数据位
2.设置无校验位
3.设置1bit停止位
4.设置波特率为115200
5.设置16倍过采样
7.使能发送器 TE
8.使能接收器 RE
9.使能串口 UE10.发送数据:判断发送数据寄存器是否为空 TXE==1为空则向发送数据寄存器写入,不为空则等待等待发送完成TC==1,此时发送结束11.接收数据判断接收数据寄存器不为空 RXNE==1不为空可以读取
完成这些设置后通过手册进行对寄存器的设置
2.iic通信
2.1iic
I2C总线是PHLIPS公司在八十年代初推出的一种串行的半双工总线,主要用于连接整体电路。 I2C总线为两线制,只有两根双向信号线。一根是数据线SDA,另一根是 时钟线SCL。 IIC支持多主机多从机通信和一主机多从机通信
2.2iic硬件连接方式
I2C总线上传送的数据信号是广义的,既包括地址信号,又包括真正的数据信号。 主机在起始信号后必须传送一个从机的地址(7位),第8位是数据的传送方向位(R/W),用“0”表示主机发送数据(W),“1”表示主机接收数据(R)。总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己被主机寻址,根据R/W位将自己定为发送器或接收器。
2.3iic的信号
iic总线是一种同步通信总线,也就表示通信双方的通信过程要在各种时钟信号的作用下实现:
起始信号、终止信号、应答信号、非应答信号、数据接收和发送信号
I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
一个时钟周期,接收方和发送发完成了一位数据的接收和发送
起始信号:SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号
终止信号:SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号
应答信号:接收方接到数据了,还可以进行下一次8bit数据的接收
非应答信号:接收方接收到数据了,不想进行下一次数据的接收
2.4iic主机和从机通信过程分析
主机发起起始信号
主机发送7bit从机地址+1bit读写标志
从机回应应答信号
发送方发送数据
接收方应答
发送方发送数据
接收方应答
.....
主机发起终止信号,通信结束
2.5 主机读取从机发送的数据
主机读取从机一个字节的数据
主机发送起始信号
主机发送7bit从机地址+1bit写标志
从机回应应答
主机发送8bit从机寄存器地址
从机回应应答
主机发起重复起始信号
主机发送7bit从机地址+1bit读标志
从机回应应答信号
从机发送8bit数据
主机回应非应答信号
主机发起终止信号
3.spi总线
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。 SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。 OLED 数码管、LCD SPI总线支持一主机多从机通信
3.1spi的基本连线
3.2四线制连线
当一个SPI主机和多个从机进行通信时,会通过片选线 选择和哪一个从机进行通信
3.3 SPI的三线制接线
当单主机单从机进行SPI通信时不需要片选线选择和哪一个从机进行通信,所以在进行连接时只需SCK\MOSI\MISO三根线就可以完成通信
3.4SPI主从机通信需要通过两个时钟特征进行约定:
时钟极性(CPOL):空闲状态下时钟线电平的高低
时钟极性为1:空闲状态下时钟线保持高电平
时钟极性为0:空闲状态下时钟线保持低电平
时钟相位(CPHA):通信进行数据采样(数据读取)在时钟前沿还是时钟后沿
时钟相位为1:在时钟后沿进行数据采样,在时钟前沿进行数据输出
时钟相位为0:在时钟前沿进行数据采样,时钟后沿进行数据输出