1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | >>> import serial >>> ser = serial.Serial(8) >>> ser.timeout=1 >>> ser.close() >>> ser = serial.Serial(8) >>> ser.timeout=1 >>> ser.readline() '' >>> ser.write("11111\n") # 每个命令以 \n 结尾 6L >>> ser.readline() 'received: 11111\r\n' >>> ser.write("11111\n") 6L >>> ser.write("22222\n33333333\n") # 可以一次发送多个命令,同样以 \n 结尾。 15L >>> ser.readline() 'received: 11111\r\n' >>> ser.readline() 'received: 22222\r\n' >>> ser.readline() 'received: 33333333\r\n' >>> ser.readline() '' >>> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | char serial_line[100] =""; int serial_line_length=0; void setup() { Serial.begin(9600); Serial.setTimeout(1000); //串口超时 1000 毫秒 } void loop() { if (Serial.available() > 0) { // 读取,读到\n或100字符或超时 serial_line_length = Serial.readBytesUntil('\n', serial_line, 100); serial_line[serial_line_length ]='\0'; // 截断字符串 Serial.print("received: "); Serial.println(serial_line); } } |
参考:
http://www.geek-workshop.com/thread-5733-1-1.html
http://wiki.geek-workshop.com/doku.php?id=arduino:arduino_language_reference:serial
http://pythonhosted.org//pyserial/pyserial_api.html