SPI 通信方式总结
在SPI通信中,通信管脚的配置是一部分,而对于通信的配置则显得跟重要,因为这个配置错误的话,会导致接收的数据是错位的,并且这个跟从设备相关。
下面已STM8L的SPI为例:
SPI初始化的函数原型是:
void SPI_Init(SPI_TypeDef* SPIx, SPI_FirstBit_TypeDef SPI_FirstBit,
SPI_BaudRatePrescaler_TypeDef SPI_BaudRatePrescaler,
SPI_Mode_TypeDef SPI_Mode, SPI_CPOL_TypeDef SPI_CPOL,
SPI_CPHA_TypeDef SPI_CPHA, SPI_DirectionMode_TypeDef SPI_Data_Direction,
SPI_NSS_TypeDef SPI_Slave_Management, uint8_t CRCPolynomial)
{
}
其中我们重点关注SPI_CPHA和SPI_CPOL,这两个参数代表了时钟的相位即时钟的极性。
在手册中,对这两个参数不同的组合,列出不同的通信时序图:
CPOL表示时钟在空闲状态的极性是高电平还是低电平,而CPHA则表示数据是在什么时刻被采样的,
具体有下面四种类型分别对应上面的时序图。<

本文总结了SPI通信的重点,强调了通信配置的重要性,特别是SPI_CPHA和SPI_CPOL参数对时序的影响。通过STM8L的SPI初始化为例,解释了CPOL和CPHA的含义,并分析了四种不同的通信时序。在调试W25Q16 Flash时遇到的数据错位问题,揭示了W25Q16支持的SPI总线模式为Mode0或Mode3,因此需要正确设置CPOL和CPHA为0或1。
最低0.47元/天 解锁文章
8818

被折叠的 条评论
为什么被折叠?



