我采用STM32H7系列单片机作为SPI主传输设备,只需与4个SPI从设备进行通信,这些设备也都是STM32H7单片机的,主从配置都用于软件下位管理。混淆的是,当主程序不使用硬件NSS引脚就想要与它交谈或将数据传输给它时,从站将如何识别?在这种情况下,从设备将如何开始接收,并在所有数据传输时停止接收?
发布于 2019-12-02 19:36:34
如果使用软件从选择(NSS),则必须按软件选择和取消选择SPI接口。
通常,您将在用作NSS/CS的引脚上设置外部中断,并在触发中断时选择/取消选择SPI接口。
在STM32F1芯片上,通过设置/清除SSI寄存器中的SSI位来选择/取消SPI接口。我想它在STM32H7芯片上非常相似。
更新
我刚刚检查了STM32H7,结果完全一样。
发布于 2019-12-01 19:43:32
这很简单。每个奴隶都有一个名为CS的引脚。您需要通过使用GPIO来设置这个引脚来选择这个设备。然后你就可以发送或接收数据。记住,即使主时钟只想接收数据,它也必须提供时钟。
发布于 2022-09-02 06:03:47
下面显示的代码似乎可以管理这个问题。
__HAL_SPI_ENABLE(&hspi1);
__HAL_SPI_DISABLE(&hspi1);https://stackoverflow.com/questions/59129025
复制相似问题