我从一个COM端口将PIC(微控制器)的adc值发送到我的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
答案 0 :(得分:0)
端口设置为二进制传输。没有NULL字节剥离, CR-LF翻译等(对POSIX有很多次启用。)这个 使这个模块普遍有用。
我会检查另一端的传输例程。你在使用字符串发送例程吗? (在这种情况下,例程在null
之前停止。你必须使用逐字符发送例程,这对于特殊值是透明的。例如write
如果你在C中工作)
答案 1 :(得分:0)
谢谢jcoppens给你答案, 要从微控制器发送值(在C中):首先我将adc值拆分为2个字节(因为它是16位值),例如:
<repository>
<id>pentaho-releases</id>
<url>http://repository.pentaho.org/artifactory/repo/</url>
</repository>
我发送带有Microchip提供的函数的value_tab(putUSBUSART(char * data,BYTE length)和CDCTxService())。您可以在此处查看这些功能:description code
我试图用rs232终端发送一个空字节并显示一些内容,所以我不知道为什么pyserial无法读取它。