📡 通信协议目录
1. I²C通信协议
1.2 物理层
1.2.3 OC/OD输出原因
// 开漏输出实现线与逻辑
#define SDA_PIN_MODE() GPIO_Mode_OD // 配置为开漏模式
#define SCL_PIN_MODE() GPIO_Mode_OD
1.3 协议层
1.3.5 通信流程
- 写寄存器时序:
(图片来源:EM7028数据手册)
2. SPI通信协议
2.4 工作模式
模式 | CPOL | CPHA | 空闲时钟 | 采样时刻 |
---|---|---|---|---|
0 | 0 | 0 | 低电平 | 第一个时钟边沿 |
1 | 0 | 1 | 低电平 | 第二个时钟边沿 |
2 | 1 | 0 | 高电平 | 第一个时钟边沿 |
3 | 1 | 1 | 高电平 | 第二个时钟边沿 |
2.4.1 模式判断示例
ST7789V显示屏SPI模式判断:
(图片来源:ST7789V数据手册)
分析步骤:
- 空闲状态观察:CS未拉低时SCLK保持低电平 → CPOL=0
- 数据采样点:数据在第一个上升沿被采样 → CPHA=0
- 结论:该器件工作在 Mode 0
// STM32 SPI模式0配置
SPI_InitTypeDef spi;
spi.CLKPolarity = SPI_POLARITY_LOW; // CPOL=0
spi.CLKPhase = SPI_PHASE_1EDGE; // CPHA=0
HAL_SPI_Init(&spi);
注意:实际开发时务必以器件数据手册的时序图为准,图片URL需替换为实际可访问地址。