我一直在研究需要通過USB與(Debian)Linux NAS進行通信的Arduino項目。Arduino USB與Linux的兼容性
它與Windows終端完美可靠地通信。
與Linux的通信非常糟糕。
這裏是我此通信測試應用程序:
void setup(void) {
Serial.begin(9600, SERIAL_8N1);
}
void loop(void) {
do {
Serial.println("1234567890");
delay(1000);
} while (true);
}
OSEPP納米的Arduino到Windows: 隨着OSEPP納米的Arduino,通信看起來是這個樣子的Windows:
1234567890
1234567890
1234567890
1234567890
1234567890
1234567890
1234567890
(forever, ok)
OSEPP Nano Arduino到QNAP NAS上的Linux: 使用OSEPP Nano Arduino,通信看起來像這樣:^h的Linux上的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到Linux上的QNAP NAS: 這看起來很有用,但它並沒有長時間工作。
[~] # 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的利利帕德 類似的結果,以納米& Duemilanove。
問題: 有誰知道爲什麼會發生這種情況嗎?我更喜歡使用「Nano」Arduino,因爲這個項目只需要少量的I/O線,任何大一點的東西都可能會導致過度殺傷。
Arduino USB實現是否與Linux以某種方式不兼容?
感謝您給出的任何見解!
您在串口上打開了多個連接。 –
你是*正確*!系統守護進程(?)ups_yec一直在收集來自端口的字符。感謝您的幫助!我原本以爲兩個進程不能同時打開同一個端口,並認爲這是不可能的。 –
@ IgnacioVazquez-Abrams:你可以把它放入答案中;我想標記你的是正確的。謝謝! –