Python 串行读取返回奇怪的值
Python Serial Read returning strange values
我有一个小的 python 例子,我从另一个网站上下来了。我正在尝试了解如何使用它从串行读取。
我正在通过串口从 FRDM K64f 板发送一条消息,python 程序读取了这条消息,但 return 是一个奇怪的值,下面是其中一个示例:
YVkJ�ZC
我的python代码:
import time
import serial
# configure the serial connections (the parameters differs on the device you are connecting to)
ser = serial.Serial(
port='/dev/ttyACM0',
baudrate=9600,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_TWO,
bytesize=serial.SEVENBITS
)
ser.isOpen()
print 'Enter your commands below.\r\nInsert "exit" to leave the application.'
input=1
while 1 :
# get keyboard input
input = raw_input(">> ")
# Python 3 users
# input = input(">> ")
if input == 'exit':
ser.close()
exit()
else:
# send the character to the device
# (note that I happend a \r\n carriage return and line feed to the characters - this is requested by my device)
ser.write(input + '\r\n')
out = ''
# let's wait one second before reading output (let's give device time to answer)
time.sleep(1)
while ser.inWaiting() > 0:
out += ser.read(1)
if out != '':
print ">>" + out
这是我的开发板代码:
int main(){
Serial pc(USBTX, USBRX);
pc.baud(9600);
while(1){
char c = pc.getc();
if((c == 'w')) {
pc.printf("Hello");
}
}
}
我得到的确切 return 是这样的:
Enter your commands below.
Insert "exit" to leave the application.
>> w
>>YVkJ�ZC
>>
设法解决了这个问题。
我的串行声明似乎没有正常工作。
回到 pyserial 文档并像下面这样声明我的序列号并使用 readline() 解决了问题。
ser = serial.Serial('/dev/ttyACM0')
我有一个小的 python 例子,我从另一个网站上下来了。我正在尝试了解如何使用它从串行读取。
我正在通过串口从 FRDM K64f 板发送一条消息,python 程序读取了这条消息,但 return 是一个奇怪的值,下面是其中一个示例:
YVkJ�ZC
我的python代码:
import time
import serial
# configure the serial connections (the parameters differs on the device you are connecting to)
ser = serial.Serial(
port='/dev/ttyACM0',
baudrate=9600,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_TWO,
bytesize=serial.SEVENBITS
)
ser.isOpen()
print 'Enter your commands below.\r\nInsert "exit" to leave the application.'
input=1
while 1 :
# get keyboard input
input = raw_input(">> ")
# Python 3 users
# input = input(">> ")
if input == 'exit':
ser.close()
exit()
else:
# send the character to the device
# (note that I happend a \r\n carriage return and line feed to the characters - this is requested by my device)
ser.write(input + '\r\n')
out = ''
# let's wait one second before reading output (let's give device time to answer)
time.sleep(1)
while ser.inWaiting() > 0:
out += ser.read(1)
if out != '':
print ">>" + out
这是我的开发板代码:
int main(){
Serial pc(USBTX, USBRX);
pc.baud(9600);
while(1){
char c = pc.getc();
if((c == 'w')) {
pc.printf("Hello");
}
}
}
我得到的确切 return 是这样的:
Enter your commands below.
Insert "exit" to leave the application.
>> w
>>YVkJ�ZC
>>
设法解决了这个问题。
我的串行声明似乎没有正常工作。
回到 pyserial 文档并像下面这样声明我的序列号并使用 readline() 解决了问题。
ser = serial.Serial('/dev/ttyACM0')