- Код: Выделить всё • Развернуть
import re, serial, os
port = 'ttyACM0'
if os.path.exists('/dev/'+port) == 1:
ser = serial.Serial('/dev/'+port, 9600)
ser.write("t")
print ser.readline().strip()
ser.close()
else:
print "failed"
- Код: Выделить всё • Развернуть
int incomingByte = 0; // for incoming serial data
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
Serial.println("test_striing");
digitalWrite(13, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(13, LOW); // set the LED off
delay(1000); // wait for a second
}
}
Запускаю: python serial_test.py: два раза мигает 13-й светодиод и скрипт залипает, жму Ctrl+C:
^CTraceback (most recent call last):
File "serial_test.py", line 8, in <module>
print ser.readline().strip()
File "/usr/local/lib/python2.7/site-packages/serial/serialposix.py", line 442, in read
ready,_,_ = select.select([self.fd],[],[], self._timeout)
KeyboardInterrupt
Запускаю serial monitor:
$ python serial_test.py
est_striing
$ python serial_test.py
t_striing
$ python serial_test.py
test_striing
$ python serial_test.py
test_striing
$ python serial_test.py
tet_striing
При этом в терминале:
ttess
Получается, что без запущенного монитора обратно данные не передаются, а при запушеном частично перехватываются монитором.
Если закомментировать строку
- Код: Выделить всё • Развернуть
#print ser.readline().strip()
Тестирую на пустой плате.
Ubuntu 11.04, Python 2.7.2