你是不是和我一样过,被这个spi 从模式 整过,我真是逼了狗。做个分享,希望对你有帮助。
目标:stm32(战舰) 和 stm32(迷你)的spi对传(战舰做从,迷你做主)
结果:对传成功
代码不写,你网上搜索到的可以用; 但提示:我用的是(主从片选都是软件配置);
关键点介绍:重要的是极性和相位的配置(stm32的spi对传有问题);
我stm32迷你用的极性和相位选的都为0(即Low和边沿1触发);stm32战舰极性和相位选的为1(即High和边沿2触发)
过程介绍:开始我配置着相同的极性和相位,发现Master发送4bytes数据,A1,A2,A3,A4,slave接收到的数据是D0,D1,51,D2;
经如下计算:
A1 A2 A3 A4
1010 0001 1010 0010 1010 0011 1010 0100
D0 D1 51 D2
1101 0000 1101 0001 0101 0001 1101 0010
看红颜色的二进制,对的,你的眼睛很明亮,数据右移了一bit;
解决办法就是:改变极性和相位,然后数据就收正确了。
做法:我stm32迷你用的极性和相位选的都为0(即Low和边沿1触发);stm32战舰极性和相位选的为1(即High和边沿2触发)
结果:master发送A1,A2,A3,A4;slave接收A1,A2,A3,A4;
以上如有错误,请指出,帮助小弟成长,我是菜鸟,
嘿嘿...不帮我指出,小心我喊我师傅指出我的傻逼行径。