Arduino USB与Linux的兼容性

时间:2017-04-11 03:26:55

标签: linux arduino usb qnap

我一直在研究需要通过USB与(Debian)Linux NAS进行通信的Arduino项目。

它与Windows终端完美可靠地通信。

与Linux的通信非常糟糕。

这是我的沟通测试应用程序:

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

void loop(void) {
  do {
    Serial.println("1234567890");

    delay(1000);
  } while (true);
}

OSEPP Nano Arduino到Windows: 使用OSEPP Nano Arduino,通信在Windows中看起来像这样:

1234567890
1234567890
1234567890
1234567890
1234567890
1234567890
1234567890
(forever, ok)

在QNAP NAS上使用OSEPP Nano Arduino到Linux: 使用OSEPP Nano Arduino,在QNAP NAS上通信看起来像这样:

[~] # busybox stty -F /dev/ttyUSB0 cs8 9600 opost -ixon -ixoff -cstopb -parenb
[~] # screen /dev/ttyUSB0 –fn
/var/run/utmp: No such file or directory
15
  59
    1351159113
              51115353579779
                            9
                             79111137311371
                                           11131131359
                                                      11579
                                                           11711359
                                                                   7139
                                                                       357
                                                                          35
                                                                            3130577917931359
            39
              913717117
                       31
                         1313315791113579
                                         133
                                            373

甚至数字几乎从未出现的事实应该是这个问题的线索。我在Arduino程序和Linux命令中选择了不同的串行参数,但只能使它变得更糟,更糟糕(“更差”,我的意思是没有正确接收到的字符)。

OSEPP ATMega2560 Arduino到QNAP NAS上的Linux: 这看起来很有用,但它不能长时间工作。

[~] # busybox stty -F /dev/ttyUSB0 cs8 9600 opost -ixon -ixoff -cstopb -parenb
[~] # screen /dev/ttyUSB0 –fn
1234567890
1234567890
1234567890
1234567890
1234567890
1234567890
1234567890
1234567890
1234567890
1234567890
1234567890
1234567890
1234567890
1234567890
1234567890
CC�������CC�����C�������CC����CC�

我尝试了几次令人惊讶的相似(不完全相同)的结果。

Arduino Duemilanove:

[~] # busybox stty -F /dev/ttyUSB0 cs8 9600 opost -ixon -ixoff -cstopb -parenb
[~] # screen /dev/ttyUSB0 –fn
/var/run/utmp: No such file or directory
   1713
       371
          3579
              137557
                    5379
                        359599
                              371591311533609
                                             597
                                                3579

                                                    1391913
                                                           15359
                                                                16813579
                                                                        15
                                                                          715715379
   11375
        551135
              7
               135513311993
                           51791357
                                   15959
                                        1111919
                                               113

Arduino Lilypad 纳米与纳米相似的结果Duemilanove。

问题: 有谁知道为什么会发生这种情况?我更喜欢使用“Nano”Arduino,因为这个项目只需要一些I / O线,任何更大的都是过度杀死。

Arduino USB实现在某种程度上与Linux不兼容吗?

感谢您提供任何见解!

1 个答案:

答案 0 :(得分:0)

Linux不会阻止多个进程打开串口,如果有多个进程从端口读取,那么其他进程将错过任何此类数据读取。验证没有其他进程打开串行端口。

相关问题