程序在arduino uno上运行,它读取传入的字符串,然后根据字符串的内容调用函数。
当我使用arduino的串行监视器传递字符串时,程序可以工作。例如,向前发送调用一个函数,该函数将控制字节传递给电机控制器,使电机转向。
然而,当我从linux使用pyserial时它不起作用。连接很好 - 我通过让arduino写入序列然后使用正确读取的ser.readline()来检查它。但是使用ser.write(“forward”)什么都不做。
有什么想法吗?
答案 0 :(得分:0)
您定义的协议是什么? 您是否收集输入到CR或CRLF的序列中的字符?
Arduino串行监视器一次发送所有数据,包括发送时的CR;例如其他软件 - 超级终端在您键入字符的同一时刻发送数据,并且不会自动发送CR。
尝试通过pyserial一次性发送数据并在末尾附加\ n。