多从到单主SPI软件从站管理的工作原理



我正在使用STM32H7系列微控制器作为SPI主发送设备,它只需要与4个SPI从设备通信,这些设备也都是MCU STM32H7接收。主站和从站都配置为软件从站管理。 令人困惑的是,当主站想要在不使用硬件 NSS 引脚的情况下与它通信或向它传输数据时,从站将如何识别? 在这种情况下,从设备将如何开始接收并在所有数据传输时停止接收?

如果使用软件从属选择(NSS(,则必须通过软件选择取消选择SPI接口。

通常,您会在用作 NSS/CS 的引脚上设置一个外部中断,并在触发中断时选择/取消选择 SPI 接口。

在STM32F1芯片上,通过设置/清除SPI_CR1寄存器中的SSI位来选择/取消选择SPI接口。我认为它在STM32H7芯片上非常相似。

更新

我刚刚检查了STM32H7,它完全一样。

这很简单。每个从站都有一个称为CS的引脚。只需使用 GPIO 设置此引脚即可选择此设备。然后,您可以传输或接收数据。请记住,主站必须提供时钟,即使它只想接收数据。

下面显示的代码似乎可以解决问题。

__HAL_SPI_ENABLE(&hspi1);
__HAL_SPI_DISABLE(&hspi1);

相关内容

  • 没有找到相关文章

最新更新