C 与具有不同Spi模式的2台设备的Spi连接
我有两个不同的设备要连接。一个护罩和一个轴编码器。第一种为模式0,第二种为SPI模式2。它们相互冲突。这个问题有解决办法吗 我使用不同的芯片选择引脚,这两个设备可以完美地单独工作C 与具有不同Spi模式的2台设备的Spi连接,c,eclipse,optimization,arduino,spi,C,Eclipse,Optimization,Arduino,Spi,我有两个不同的设备要连接。一个护罩和一个轴编码器。第一种为模式0,第二种为SPI模式2。它们相互冲突。这个问题有解决办法吗 我使用不同的芯片选择引脚,这两个设备可以完美地单独工作 我能做些什么来解决这个问题?有没有我错过的教程?在启动与这两个设备中任何一个的新通信之前,您必须重新配置SPI模块。 如果您有两个可用的SPI端口,您也可以为每个设备使用不同的端口,并相应地配置每个端口。在启动与这两个设备中任何一个的新通信之前,必须重新配置SPI模块。 如果您有两个可用的SPI端口,您还可以为每个设备
我能做些什么来解决这个问题?有没有我错过的教程?在启动与这两个设备中任何一个的新通信之前,您必须重新配置SPI模块。
如果您有两个可用的SPI端口,您也可以为每个设备使用不同的端口,并相应地配置每个端口。在启动与这两个设备中任何一个的新通信之前,必须重新配置SPI模块。
如果您有两个可用的SPI端口,您还可以为每个设备使用不同的端口,并相应地配置每个端口。您可以在两个芯片选择之间共享SPI,每个都有自己的模式。我这样做。只需为指定SPI完整配置的每个芯片选择编写一个帮助函数来代替digitalwrite
void cs1_low() {
SPI.setDataMode(SPI_MODE0);
SPI.setClockDivider(spiRate);
digitalWrite(MP3_XCS, LOW);
}
void cs2_low() {
SPI.setDataMode(SPI_MODE1);
SPI.setClockDivider(spiRate/2)
digitalWrite(MP3_XCS, LOW);
}
在某些情况下,您可能需要对结算进行说明。我在和其他不一样的芯片之间使用这个
最好不要假设SPI处于您想要的模式,因为不同的库或中断可能会改变它。我见过很多次模式相同,但SD卡和其他卡之间的速度不同。这导致了它的良好开端,但我后来收到了垃圾。您可以在两个芯片选择之间共享SPI,每个芯片都有自己的模式。我这样做。只需为指定SPI完整配置的每个芯片选择编写一个帮助函数来代替digitalwrite
void cs1_low() {
SPI.setDataMode(SPI_MODE0);
SPI.setClockDivider(spiRate);
digitalWrite(MP3_XCS, LOW);
}
void cs2_low() {
SPI.setDataMode(SPI_MODE1);
SPI.setClockDivider(spiRate/2)
digitalWrite(MP3_XCS, LOW);
}
在某些情况下,您可能需要对结算进行说明。我在和其他不一样的芯片之间使用这个
最好不要假设SPI处于您想要的模式,因为不同的库或中断可能会改变它。我见过很多次模式相同,但SD卡和其他卡之间的速度不同。开始的时候很好,但后来我收到了垃圾