我正在尝试使用Python通过串行通信向arduino发送日期时间,但是我在发送数据时遇到了问题。当我使用var = raw_input ("input:")
时
数据已发送。但是当我使用var = str (time.asctime (time.localtime (time.time ())))
数据时没有发送到arduino。
这是我的Python代码:
import serial, time
port = serial.Serial('COM4',9600)
var = str(time.asctime(time.localtime(time.time())))
if port.isOpen():
print ('Port Aktif')
while 1:
port.write(var)
time.sleep(1)
print port.readline()
else:
print 'port Tidak Aktif'
我的代码arduino:
String msg ="";
void setup() {
Serial.begin(9600); // set the baud rate
}
void loop() {
if(Serial.available() > 0){
while (Serial.available()>0){
msg += char(Serial.read());
delay(30);
}
Serial.println(msg);
}
}
答案 0 :(得分:0)
而不是
In [1]: import time
In [2]: str(time.asctime(time.localtime(time.time())))
Out[2]: 'Sat May 6 14:39:17 2017'
使用:
In [3]: time.asctime(time.localtime()).encode('utf-8')
Out[3]: b'Sat May 6 14:39:17 2017'
后者将返回一个字节字符串,这在写入串行端口时是必需的。