在stm32f4xx_hal_spi.c中HAL_SPI_TransmitReceive函数中,当需要发送数据时为什么要先进行一次发送(模式为从机或发送帧数为1时),如下图:![]() |
根据SPI的基本协议,作为从机来讲,不发出时钟信号,而是由主机提供时钟信号,也就是随着主机时钟信号发出从机的数据。 因此要先准备好数据,也就是先放进DR寄存器预备好,等待主机时钟信号过来时打到总线上去。 这里的代码应改是作为从机的MCU先将数据预备好,而不是自己立即发送,并且从机也不会发出时钟信号。
根据SPI的基本协议,作为从机来讲,不发出时钟信号,而是由主机提供时钟信号,也就是随着主机时钟信号发出 ...
明白了,感谢