久芯网

stm32 HAL库SPI驱动中为什么从机要先发一次数据?

avatar fei001 提问时间: 2023-07-15 13:21:55 / 未解决
在stm32f4xx_hal_spi.c中HAL_SPI_TransmitReceive函数中,当需要发送数据时为什么要先进行一次发送(模式为从机或发送帧数为1时),如下图:
stm32 HAL库SPI驱动中为什么从机要先发一次数据? [相关图片]

如需获得 stm32 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

2个回答
  • avatar butterflyspring
    回答时间: 2023-07-15 13:39:40

    根据SPI的基本协议,作为从机来讲,不发出时钟信号,而是由主机提供时钟信号,也就是随着主机时钟信号发出从机的数据。 因此要先准备好数据,也就是先放进DR寄存器预备好,等待主机时钟信号过来时打到总线上去。 这里的代码应改是作为从机的MCU先将数据预备好,而不是自己立即发送,并且从机也不会发出时钟信号。

  • avatar fei001
    回答时间: 2023-07-15 14:09:09
    butterflyspring 发表于 2022-10-14 10:02
    根据SPI的基本协议,作为从机来讲,不发出时钟信号,而是由主机提供时钟信号,也就是随着主机时钟信号发出 ...

    明白了,感谢

会员中心 微信客服
客服
回到顶部