Uart 串行 异步 全双工
读取温湿度数据 语音播报 字库下载
Spi 串行 同步 全双工
Oled屏驱动 闪存的信息读取
Iic 串行 同步 全双工
St20温湿度传感器 6轴加速度传感器 hp6血压心率模块
Rs485(底层硬件)+modbus(上层协议)
Wifi (esp8266)
特殊的外设的信息传输
Lcd屏 用fsmc()模拟8080时序
光照,烟雾的数据采集 DMA直接数据传输
温湿度dht11 单总线数据
1UART的
通信过程
TXD ---------->>RXD
RXD----------->>TXD
数据格式
起始位+数据位+校验位+停止位 (位协议rs232 也称(1801))
数据 1: 数据 0
适用范围
两个设备 一对一通信
用串口中断解决数据按位发送问题,将数据放在缓冲区,当数据满,全部发送
传输
程序代码:
2spi
的通信过程 设备1 设备2
(主) Cs(片选)------------------------ (从) cs 与从设备公用sck miso mosi线
sck(时钟) ------------------------> sck(时钟) 不共用片选线(通过片选择从设备)
miso(串行输入)<----------------------- mosi
mosi(串行输出)----------------------à miso
数据格式:
通过时钟极性和时钟相位确定模式 模式0和3为上升沿采样下降沿发送
传输步骤:1主句发送时钟信号 2主机拉低片选激活从机 3主机通过mosi将数据发送给从机 4 若需要响应从机将数据发送给
3iic
Iic的结构是什么?
由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。
谁控制时钟线(即控制SCL的电平高低变换)谁就是主设备。
特点:1支持多个主机和多个从机,2连接总线的设备都有一个唯一地址3多个主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个设备占用总线。
数据的有效位:SCL 为高电平的时候 SDA 表示的数据有效,即此时的 SDA 为高电平时表示数据“ 1”,为低电平时表示数据“ 0”。当 SCL为低电平时, SDA 的数据无效,一般在这个时候 SDA 进行电平切换,为下一次表示数据做好准备。
通讯过程:
数据格式:起始信号+从机地址+(读写选择位)S/W+(应答信号)A+(数据8位)+A+DATA
+数据停止信号(p)
如果要写 MPU-6050寄存器,主设备需要发出起始信号( S)和硬件地址,还要加一个R/W位, 0为写, 1为读。在第9个时钟周期(上升沿时), MPU-6050产生应答信号。然后主设备开始传送寄存器地址( RA), 接到MPU6050的应答后, 开始传送寄存器数据, 然后仍然要有应答信号,依次类推。如下图:。
开始信号:串行时钟线为高电平,串行数据线由低电平向高电平跳变
结束信号:串行时钟线为高电平,串行数据线由高电平向低电平跳变
应答信号:主机串行时钟线(scl)拉高时,读取从机串行数据线(sda)的电平,如果为低电平,表示从机产生应答信号,若为高表示信号无效。
Uatr spi iic 三者比较
SPI IIC UART
传输速率 spi最高 iic次之 uart 最低
数据线: spi4根 iic2根 uart 2根
通信设备 一主多从 多主多从 单对单
从机选择方式 片选信号选择 地址选择从机
校验 无 奇偶校验