如何在stm32 spi Trasmit结束后始终将MOSI引脚拉低

问题描述 投票:0回答:1




如果 SPI 传输过程中 MOSI 数据的最后一位为高电平,则下一个信号将继续为高电平。有什么办法让它在SPI传输后变低吗?

embedded stm32 spi
1个回答
0
投票

如果是事实,那可能并不重要。当取消选择所有从机时,所有从机输入都将呈高阻抗,并且将消耗最小电流。

但是,如果您确实需要,只需在不选择从机的情况下输出一个零字节即可。没有任何东西会接收数据,但最后一位将保证为零。然而,额外的时钟可能会消耗比您想象的归零所节省的更多的电量,并且当然需要时间。

或者,您可以通过清除 SPI_CR1 中的 SPE 位来禁用整个 SPI 外设。毫无疑问,有一些臃肿、过于复杂的 STM32Cube HAL 函数可以为您完成此操作,或者您可以只是,您知道......清除它。如果在进行任何进一步交易之前,您需要重新启用它。

HAL_SPI_DeInit()
肯定会为您做到这一点,但除此之外还有更多 - 您必须再次调用
HAL_SPI_Init()
来恢复它,如果您使用单个设备或所有设备使用相同的设置,这有点重量级。他们在内部使用
__HAL_SPI_DISABLE()
 __HAL_SPI_ENSABLE()
宏。

© www.soinside.com 2019 - 2024. All rights reserved.