Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 与具有不同Spi模式的2台设备的Spi连接_C_Eclipse_Optimization_Arduino_Spi - Fatal编程技术网

C 与具有不同Spi模式的2台设备的Spi连接

C 与具有不同Spi模式的2台设备的Spi连接,c,eclipse,optimization,arduino,spi,C,Eclipse,Optimization,Arduino,Spi,我有两个不同的设备要连接。一个护罩和一个轴编码器。第一种为模式0,第二种为SPI模式2。它们相互冲突。这个问题有解决办法吗 我使用不同的芯片选择引脚,这两个设备可以完美地单独工作 我能做些什么来解决这个问题?有没有我错过的教程?在启动与这两个设备中任何一个的新通信之前,您必须重新配置SPI模块。 如果您有两个可用的SPI端口,您也可以为每个设备使用不同的端口,并相应地配置每个端口。在启动与这两个设备中任何一个的新通信之前,必须重新配置SPI模块。 如果您有两个可用的SPI端口,您还可以为每个设备

我有两个不同的设备要连接。一个护罩和一个轴编码器。第一种为模式0,第二种为SPI模式2。它们相互冲突。这个问题有解决办法吗

我使用不同的芯片选择引脚,这两个设备可以完美地单独工作


我能做些什么来解决这个问题?有没有我错过的教程?

在启动与这两个设备中任何一个的新通信之前,您必须重新配置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卡和其他卡之间的速度不同。开始的时候很好,但后来我收到了垃圾