Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用PySerial读取空字节_Python_Pyserial - Fatal编程技术网

Python 使用PySerial读取空字节

Python 使用PySerial读取空字节,python,pyserial,Python,Pyserial,我将adc值从PIC(微控制器)通过com端口发送到PC。我使用PySerial读取数据。但当我试图读取空字节时,出现了一个问题,它不起作用 if self.serial_com.inWaiting(): val = self.serial_com.read() else: print "no data" 当我发送空字节(0x00)时,他总是显示“无数据”,所以我无法读取空字节,为什么?我猜空字节不是数据 我在Windows上使用Python 2.7.9和PySerial 2.

我将adc值从PIC(微控制器)通过com端口发送到PC。我使用PySerial读取数据。但当我试图读取空字节时,出现了一个问题,它不起作用

if self.serial_com.inWaiting():
    val = self.serial_com.read()
else:
    print "no data"
当我发送空字节(0x00)时,他总是显示“无数据”,所以我无法读取空字节,为什么?我猜空字节不是数据

我在Windows上使用Python 2.7.9和PySerial 2.7

端口设置为二进制传输。没有空字节剥离, CR-LF翻译等(POSIX多次启用) 使本模块普遍有用


我会检查另一端的传输程序。您正在使用字符串发送例程吗?(在这种情况下,例程在
null
之前停止。您必须使用对特殊值透明的逐字符发送例程。例如
write
,如果您使用C)

感谢jcoppens的回答, 要从微控制器发送值(C):首先,我将adc值拆分为2个字节(因为它是16位值),例如:

short int Value = 512;
char value_tab[2];
char* ConvertValue = value_tab;
*ConvertValue++ = Value & 0x00ff; // lower byte
*ConvertValue++ = ((Value & 0xff00) >> 8); // upper byte
我发送带有Microchip(putUSBUSART(char*数据,字节长度)和CDCTxService()提供的函数的value_选项卡。您可以在此处看到这些函数:


我试图用rs232终端发送一个空字节,它显示了一些东西,所以我不知道为什么pyserial不能读取它。

在pyserial的函数read()中,它返回一个bytes(data)和bytes=str。因此,如果我不能读取空字节,这可能是正常的,因为read()返回一个“str”,而不是一个真正的byte。最后,它工作了,这是一个错误,在我的C代码与图片对不起。谢谢:)