仅以寄存器地址为8Bit的器件为例:(例如MPU6500、LSM6DS3)
I2C通信协议
I2C 的要点是了解I2C通信帧的组成部分:START起始位、STOP停止位、ACK/NACK信号、从机器件地址、从机寄存器地址。
I2C读的时序比较繁琐,注意与写区分。
- I2C 通信帧的组成部分(单字节写):
- I2C单字节写 / 多字节写:
- I2C单字节读 / 多字节读:
SPI通信协议
相较于I2C,SPI则简单很多,多器件的管理通过多根CS引脚进行控制,无应答处理,适合大数据流的连续写入。
(下图中:SPC就是SCK/SCLK,SDI就是MOSI,SDO就是MISO)
- SPI 单字节写 / 多字节写:
- SPI 单字节读 / 多字节读:
stm32 - I2C/SPI 波形及代码
stm32F103 软件I2C获取 AHT20温湿度传感器数据:stm32-I2C-AHT20
stm32F40x 硬件SPI获取AD793的ADC采样值:stm32-SPI-AD7793