我正在研究stm32f0308-discovery和jetson tx2之间的spi通信。 Jetson是master,stm32应该是slave。 (我不知道如何,但如果可能的话,stm32也可能是主设备。)我的问题是我是stm32的新手,我不知道如何使stm32成为从设备。有人可以告诉我 stm32 spi 从机的方法吗?预先感谢。
您可以首先阅读您的产品系列的参考手册。然后,您可以在STM32Cube软件包中找到SPI外设配置源代码的示例。
如果您是 STM32 新手,也是微控制器生态系统新手,恐怕您需要一些培训。不过网上有很多资源。
您可以在配置 SPI_InitTypeDef 结构体时选择 SPI 模式。您需要将 SPI_Mode 设置为 Slave,如下所示:
SPI_InitDef.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitDef.SPI_Mode = SPI_Mode_Slave; // <-- This is it
SPI_InitDef.SPI_DataSize = SPI_DataSize_8b; // 8-bit transactions
SPI_InitDef.SPI_FirstBit = SPI_FirstBit_MSB; // set it to match Master conf
SPI_InitDef.SPI_CPOL = SPI_CPOL_Low; // set it to match Master conf
SPI_InitDef.SPI_CPHA = SPI_CPHA_2Edge; // set it to match Master conf
SPI_InitDef.SPI_NSS = SPI_NSS_Hard; // use hardware SS
可以在此处
找到使用蓝色药丸板的示例教程是的。您可以将STM32作为从机。您唯一需要做的就是清除外设控制寄存器中的 MSTR 位。然后,您也许可以在 SPI 数据寄存器中加载一些值,然后可以从其他板上读取它们。
您可以使用 stm32cubeMX 来实现此目的。 在 spi 外设的配置中,您将找到选择主模式或从模式的选项