arduino 板发送到PC是可以的接受到。用PC发送到arduino 板上,然后arduino 再把接受消息返回到PC。PC打印出来。
arduino 板每次返回都不是正确数字。刚开始是python字符格式问题,很快解决。就是代码返回数据不正确。最后好了。附上正确代码。不知道是不是加载了Firmata这个库的原因。
#include <Boards.h>
#include <Firmata.h>
#include <FirmataConstants.h>
#include <FirmataDefines.h>
#include <FirmataMarshaller.h>
#include <FirmataParser.h>
String comdata = "";
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(2,OUTPUT);
}
void loop() {
// Serial.println(Serial.available());
// Serial.println("aaa");
while (Serial.available() > 0)
{
comdata += char(Serial.read());
delay(2);
}
if (comdata.length() > 0)
{
Serial.println(comdata);
comdata = "";
}
// else{
// Serial.println("1111");
// delay(100);
// }
}
上图是arduino
import serial
import time
print("Trying...", "COM3")
arduino = serial.Serial("COM3", timeout=5)
i = 1
while i<16:
arduino.write("akuloll".encode('utf-8'))
# time.sleep(1)
data_return = arduino.readline().strip().split()
print(data_return)
# print(data_return[0] == b'1111')
# if data_return:
if data_return:
print(data_return)
print('into else', data_return)
else:
pass
# print(arduino.readline().strip().split())
print('i=',i)
i+=1
上面是python代码。
我电脑是com3口。
错误代码就不上传了。