自己做的 F373 板子,SPI 出现奇怪现象:
位数设置为 ≤8bit 时,每往 DR 写入一次数据,SCK 会发出两倍的脉冲。SPI1 和 SPI3 都这样。
设置为 >8bit 时,波形正常。(但可惜没法利用。)
如图,黄 {MOD}波形为 SCK,蓝 {MOD}为 MOSI (DR = 0xCA)。
NSSP = 0 时:
NSSP = 1 时:
程序配置如下:
硬件、软件都已经最小化,试过STMcube产生的配置程序,也试过多个官方例程,情况相同,
而且 SPI1 和 SPI3 情况完全一样。
很简单的事,折腾两天,近乎绝望。
目前只能认为芯片有问题。但愿是自己遇到特例了,而不是芯片本身的 bug 。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
看一下函数 HAL_SPI_Transmit() 的原型,里面有8位模式发送,见下图粉 {MOD}框出来的部分。相信在用户指导手册中也应该说明。
这个是批量传输,当计数器内大于1的时候,按16位发送;当等于1的时候,按8位发送;等于0的时候不进来,直接结束了。
一周热门 更多>