由于以下原因,无法在Arduino中更改SPI模式和比特率

3个视图(过去30天)
我使用MATLAB R2016a和Arduino DUE。使用spidev创建SPI设备对象时,无法正确更改SPI模式和比特率。Mode总是0,bitrate总是4Mbps。我也用R2019a试过这个,它是一样的。
例如,我尝试使用这个命令来改变模式为3和比特率为1Mbps:
spidev (a,‘D10’,‘模式’,3,“比特率”,1000000);
但这并没有改变任何东西。
那里有bug吗?如何修复?
提前谢谢。
1评论
安德烈Kiselnikov
安德烈Kiselnikov 2019年8月6日
在使用接口之前,您应该创建控制电路板的系统对象。您可以将脚本附加到这里吗?

登录评论。

接受的答案

安德烈Kiselnikov
安德烈Kiselnikov 2019年8月6日
我现在没有Arduino Due,但我可以下周检查你的脚本。如果是真的,请让我知道。
3评论
托希迪安马苏德酒店
托希迪安马苏德酒店 2019年8月12日
非常感谢。还请注意,模式没有正确设置为3,它仍然在模式0。在模式3中,数据在下降边缘应该是稳定的,而不是上升。
如果您能继续使用Mathworks,并在这里再次发布您找到的任何解决方案,我将不胜感激。

登录评论。

答案(1)

托希迪安马苏德酒店
托希迪安马苏德酒店 2019年8月6日
编辑:托希迪安马苏德酒店 2019年8月6日
是的,我确信我已经事先创建了系统对象。以下是完整的代码:
一个= arduino ()
dev = spidev (,“D10”“模式”3.“比特率”, 1000000)
writeRead (dev, 15);
它返回这个:
一个=
阿杜伊诺具有以下属性:
端口:“COM3”
板:“由于”
AvailablePins: {“D2-D53”‘A0-A11’
库:{“I2C”SPI的“伺服”
dev =
spidev具有以下属性:
ChipSelectPin: D10
引脚:SPI-4(MOSI), SPI-1(MISO), SPI-3(SCK)
模式:3(0、1、2或3)
位顺序:msbfirst(“msbfirst”“lsbfirst”
比特率:1000000
但在实际测量的比特率(在示波器上)仍然是4Mbps和模式0。
2的评论
托希迪安马苏德酒店
托希迪安马苏德酒店 2019年8月13日
这两个都经过了审判。没有区别。我猜Arduino的固件出了问题。

登录评论。

下载188bet金宝搏


释放

R2016a

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始打猎吧!