SPI复用的初始化覆盖问题-数据不对,而且写的数据不一样,位数还在变化。

SPI复用时,因为不同器件时序不一样,速率不一样,工作模式不一样,数据位数等等可能都不一样;

我在一次调试完一个器件后,调试另一个器件时,读写数据始终都不对,和领导使用示波器捕捉波形后发现:后面一个器件写的数据不但不对,而且写使能函数中写入不用的的数据时,数据的位数还在变化。

最后看到前面一个器件初始化配置后,后面紧跟着针对另一个器件进行SPI初始化,想到可能是初始化覆盖问题,就把主函数中前面的一个器件的SPI初始化函数屏蔽后,数据读写正确,用示波器观察后输入输出引脚数据,也正常。

另外示波器观察的数据如果分不开的话,可以加延时。感谢领导的帮助!

你可能感兴趣的:(stm32经验分享,spi,stm32)