我在用Python通过串口发送数据时遇到问题
我正在尝试通过串口发送一个叫做“ON”的命令来开启我的应用程序,使用的是PYTHON语言。我已经在我的控制器上写了一个程序,每当我通过串口收到命令时,它就会执行一些操作。
这是我的代码:
import serial
s=serial.Serial(0)
s.write('^ON') #this is my string to ON
s.close()
但是问题是,它能够读取控制器发送的数据,但却无法把数据写入控制器。
1 个回答
0
你的微控制器可能在期待一种叫做“硬件流控制”的东西,这通常是通过连接器上的RTS/CTS或DSR/DTR引脚来实现的。简单来说,它的意思是,在接收数据时,发送方可能需要“抬起”某个引脚,以提醒控制器准备接收数据。不过,这种硬件流控制似乎越来越少见,所以在PySerial中默认是关闭的。
你可以试试这一行:
s=serial.Serial(0, rtscts=True)
如果这个不行,可以试试:
s=serial.Serial(0, dsrdtr=True)
如果这两个都不行,那就试试这个:
s=serial.Serial(0, rtscts=True, dsrdtr=True)
希望其中一个能对你有用!
(不过也可能不行:很多爱好者项目的电缆是直接连接流控制引脚的。但我们可以试试看!)