与微控制器

时间:2015-11-22 22:44:43

标签: python pyserial

我有一个Arduino UNO,我正在与我的PC和UNO进行串行通信。我正在使用pyserial与UNO进行通信,我只收到我发送到微控制器的字符串的第一个字符。以下是串行通信的脚本:

import serial
import time
port = "\\.\COM4"
baudrate = 19200
parity=serial.PARITY_NONE
no=serial.EIGHTBITS
stopbits= serial.STOPBITS_ONE

ser=serial.Serial()
ser.port=port
ser.baudrate=baudrate
ser.timeout=1
ser.parity=parity
ser.bytesize=no
ser.stopbits=stopbits
ser.open()
time.sleep(1)
time.sleep(1)
ser.setDTR(level=0)
time.sleep(1)
ser.write("Hello World");
bytes=ser.read()
print bytes,
ser.close()

我已经设置了我的微控制器来回应发送给它的任何内容,我的程序退出而不打印字符串“Hello World”。但是,它会打印第一个字符“H”。我的脚本有问题吗?我使用Arduino串行监视器检查了我的微控制器代码,当我通过监视器发送数据时,它可以很好地回显输出。这段代码有什么问题?为什么我的代码不打印整个字符串,而只打印我传递给ser.write()方法的字符串的第一个字母?提前感谢您的回复!

1 个答案:

答案 0 :(得分:1)

<configuration> <source>1.7</source> <target>1.7</target> <compilerArguments> <endorseddirs>${endorsed.dir}</endorseddirs> </compilerArguments> </configuration> 将整数个字节作为参数读取,因此要读取“Hello World”之类的内容,您需要将命令修改为ser.read()