我正在使用 STM32L475 MCU,并且正在使用 SPI 与 SD 卡进行通信。
当我配置 SPI SCK GPIO 引脚时,我将其配置为 PushPull 模式下的备用功能 SPI。我将 ClockPolarity 设置为空闲低电平,这会让我认为 SCK 线在不活动时会保持低电平,但事实并非如此。相反,SCK 线闲置高,直到 SPI 通信开始。这意味着如果我进行 SPI 写入和后续读取,则会触发一个额外的时钟脉冲,从而中断我的通信。
我发现能够解决此问题的唯一方法是进一步将 GPIO 引脚配置为具有下拉电阻,但在我看来,这在电流消耗方面会很浪费。将引脚配置为开漏也不起作用,因为无论如何我都需要添加一个上拉电阻。最后,我尝试为 SCK 引脚写入 GPIO 引脚的输出寄存器并将其设置为低电平,但这并没有改变任何东西。
在我看来,我唯一的选择是在推挽引脚上放置一个下拉电阻并不断浪费电流以使 SCK 线保持低电平。我想知道这是否是人们用于 SPI 通信的正常解决方案?我无法想象它是。