我的意思是,这可能吗?
我已多次尝试将正常项目上传到我的arduino并且运行良好。但是当我上传一个与hc-05相关的代码时(尽管我仍然没有想出这个模块在一整天的反复试验之后是如何工作的,因为它根本不起作用)< strong>它切断了串行连接(ttyACM0),并且无法将任何其他任何项目上传到arduino。端口被阻塞,我无法解除阻塞(是的,我已经在网上浏览解决方案而且没有一个工作,我发誓唯一有效的方法是将Ubuntu格式化并重新安装它,由于存储了我的小数据,所以没有任何戏剧性。)
我完全清楚格式化不是解决方案,这听起来很愚蠢,但我发誓会发生什么。它正在做与蓝牙模块有关的任何事情,并且端口不再用于通过Arduino IDE传输数据(插入其他东西,如鼠标和pendrives仍然有效)。
提前感谢您的帮助。我绝望了。任何拥抱也将受到赞赏。
编辑:此后面临的问题是,在IDE中:
打开串口&#39; / dev / ttyACM0&#39;时出错。
编辑2:以下是代码。正如评论中所提到的,当我从9600更改为任何其他波特率HIGHER(不是4800)时,现在似乎只是端口阻塞。
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
mySerial.begin(38400);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.println("configuracion!");
// set the data rate for the SoftwareSerial port
}
void loop() // run over and over
{
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}
编辑3:正如评论中所说,端口ACM0 被阻止&#34;永远和永远&#34;再次,即使我重新启动计算机。可能是港口变得疲惫不堪&#34;上传草图的试验太多了?
编辑4:正如评论中所述,在sudo模式下运行arduino IDE之后
$ sudo arduino
它允许我上传我想要的所有草图,并且似乎对波特率的变化没有任何问题。
毕竟,似乎是一个权限问题,但我想知道这是如何变大,以及如何通过简单的操作更改权限。无论如何,我无法在没有sudo的情况下工作(我必须说我已经是拨出组的成员)了,所以我们现在就在这里(令人兴奋的不是它) ?)。
[已解决?]:我已经通过代码更改了波特率,因此它的位置为38400,现在是9600波特:
mySerial.begin(9600);
似乎我的HC-05模块版本(版本zs-040)需要9600波特才能有效进入AT模式和(我所看到的) )为了正常工作,虽然在大多数网站上你会看到它的工作在38400.不是这个版本或我不能像其他人那样在38400工作。
在http://www.martyncurrey.com/arduino-with-hc-05-bluetooth-module-at-mode/我已经看到这个特定模块有4种方式进入AT模式,但在我的情况下只有第4种方法出现在那里我
所以这里是解决方案如果我们可以这样调用它,将代码中建立的波特率更改为9600波特。 没有问题,因为我这样做,一切顺利。
感谢@ frarugi87和@Fabricio的意见,这有助于我找到正确的方法。
答案 0 :(得分:0)
我注意到您使用的是Linux,请检查ACM0是否具有权限用户权限。
要启用读取和写入,您应该为ACM0设置权限,或者也可以将用户添加到对话框组。我更喜欢将用户添加到对话框组,因为它将在重新启动时保留:
sudo usermod -a -G dialout [youruser]
注意:请注意您需要退出并再次登录该群组以反映新用户。
如果您的设备不在拨出组中,请运行下一个命令:
sudo chgrp dialout /dev/[yourdevice]
此更改将在重新启动之前有效,但它可以帮助您了解问题是否来自组/用户/设备配置。
我希望这会有所帮助:)