python 与 arduino 串口通信
>>> 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()
''
>>>
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