0

一个程序正在 arduino uno 上运行,它读取传入的字符串,然后根据字符串的内容调用一个函数。

当我使用 arduino 的串行监视器传递字符串时,该程序有效。例如,向前发送调用一个函数,该函数将控制字节传递给电机控制器,使电机向前转动。

但是,当我从 linux 使用 pyserial 时,它不起作用。连接很好 - 我已经通过让 arduino 写入串行然后使用正确读取的 ser.readline() 来检查它。但使用 ser.write("forward") 什么也不做。

有任何想法吗?

4

1 回答 1

0

你定义的协议是什么?您是否将输入到连续剧中的字符收集到 CR 或 CRLF?

Arduino串行监视器一次发送所有数据,包括发送时的CR;例如其他软件 - 超级终端会在您键入字符的同一时刻发送数据,并且不会自动发送 CR。

尝试通过 pyserial 一次性发送所有数据并在末尾附加一个 \n 。

于 2013-03-09T14:25:53.590 回答