stm32 spi全双工从机模式
Posted
技术标签:
【中文标题】stm32 spi全双工从机模式【英文标题】:stm32 spi full-duplex slave mode 【发布时间】:2019-12-08 18:03:20 【问题描述】:我正在研究 stm32f0308-discovery 和 jetson tx2 之间的 spi 通信。 Jetson 是主人,stm32 应该是奴隶。 (我知道怎么做,但如果可能的话 stm32 也可能是主人。)我的问题是我是 stm32 的新手,我不知道如何让 stm32 成为奴隶。有人可以告诉我 stm32 spi slave 的方法吗?提前致谢。
【问题讨论】:
【参考方案1】:您可以先阅读产品系列的参考手册。然后,您可以在 STM32Cube 软件包中找到 SPI 外设配置源代码示例。
如果您是 STM32 新手和微控制器生态系统的新手,恐怕您需要接受一些培训。但是网上有很多资源。
【讨论】:
谢谢!我只使用 2 个设备,它们是主设备和从设备,并且 NSS 也已激活。我想知道是否有必要,因为当我尝试从 stm32(从设备)读取数据时,必须有中断才能使用读取数据功能。我应该使用 NSS 中断还是有什么办法?【参考方案2】:您可以在配置 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
可以找到使用蓝色药丸板的示例教程here
【讨论】:
以上是关于stm32 spi全双工从机模式的主要内容,如果未能解决你的问题,请参考以下文章
FPGA作为从机与STM32进行SPI协议通信---Verilog实现