我似乎无法在ubuntu 14.04上的ArduinoStudio串行监视器上接收数据。


11

我正在使用Arduino入门套件,所以我有一个Uno R3,并通过示例尝试从Arduino Studio中的控制器读取温度数据。

本质上,我的问题可以减少到

void setup() {
    Serial.begin(9600);
}

void loop() {
    Serial.print("stuff");
}

我希望可以在串行监视器上继续打印“东西”。

(在实践中,我正在运行确切的代码,但是所有进行的温度读取都与我的问题无关,我只是提到它,因为我可以观察到温度升高时mye LED会点亮,所以我知道代码已上传并在Duo上运行)。

我没有在Studio控制台中看到任何错误,并且如果我使用进行连接,gtkterm或者screen我可以看到正在发送数据,那么问题似乎可以隔离到AndroidStudio串行监视器本身。

我正在运行Ubuntu 14.04,并且已通过USB连接/dev/ttyACM3

我尝试跑步

stty -F / dev / ttyACM3 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts

就像这里建议的一样,我也尝试使用115200波特率,请注意也要更改setup函数的值。

我也跑了

chmod a + rw / dev / ttyACM3

但我仍然看不到任何错误或输出。如何继续调试此问题?

跑步ls -l /dev/ttyACM*

crw-rw ---- 1个根拨出166,2月0日。20 14:22 / dev / ttyACM0

crw-rw ---- 1个根拨出166,2月1日。20 14:22 / dev / ttyACM1

crw-rw ---- 1个根拨出166,2月2日。20 14:22 / dev / ttyACM2

crw-rw-rw-1根拨出166,2月3日。20 14:30 / dev / ttyACM3


1
测试GtkTerm或PuTTY。
Mikael Patel

@MikaelPatel谢谢,那应该至少可以帮助我找出问题所在:)
ivarni

1
“ ls -l / dev / ttyACM *”的输出是什么?
Avamander '16

2
尝试将字符串“ stuff”放入双引号而不是单引号。
Avamander '16

1
我投票结束这个悬而未决的问题,因为询问者在评论中说: “我既不拥有arduino本身,也不拥有我正在使用的计算机”,这意味着永远不可能最终解决此问题。
克里斯·斯特拉顿

Answers:


0

默认情况下,在没有特定udev绑定规则的Linux系统上,该设备将设备重命名为非标准设备时,FTDI驱动程序应将USB映射到/ dev / ttyUSB *上的串行端口,而不映射到/ dev / ttbACM *。我怀疑您只是在错误的地方看。我认为对于任何USB串行加密狗,它默认为/ dev / ttyUSB *:

usb-serial.c:   usb_serial_tty_driver->name = "ttyUSB";

为了确保您查找的是正确的设备文件,请运行“ sudo dmesg -C” priot插入Arduino,然后再执行“ sudo dmesg”以查看USB连接到串行转换器的位置。您应该看到一个消息非常像这样:ch341-uart转换器现在已连接到ttyUSB0,其中ch341-uart被您的arduino所拥有的(最有可能是FT232'ish)所取代
louigi600

这可能不适用。该帖子声称使用的是Uno R3,它没有FTDI,但是在ATmega16u2中具有自定义USB串行实现,它将映射为ttyACM设备 而不是 ttyUSB,仅在使用其他USB串行解决方案的板上发生,例如较旧的Arduino,各种克隆版本和兼容版本。
克里斯·斯特拉顿

好的,但是仍在执行dmesg事情会告诉您linux是分配给arduino的正确设备....它不会显示ch340或FT * ....但它仍会报告已分配的字符特殊文件在/ dev中。
louigi600
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.