2013-08-01 24 views
0

我有蟒蛇pyserial腳本來讀取串口(刻度)值
設置後正確的波特率等。在膩子
它返回一個值與:串行端口值不是一個有效的ASCII

0.00 Kg 
0.00 Kg 

但pyserial readline()/read()值返回bytearray包含無效ASCII:

b' \xb0\xae\xb0\xb0 kg \r\x8a ' 
  • \xb0,\xae等於176,174十進制。
  • 十進制字符0應該是48,並且0x30
  • 字符。十進制應爲46,0x2E

這裏有什麼問題?

回答

3

注意,176-128 = 48,和174-128 = 46。因此,您看到的一些數字比您期望的數字大128。這意味着最重要的位(位7)爲某些字符設置,這反過來意味着一些通信設置(奇偶校驗,長度,停止位)是錯誤的。試用7E1:

serial.Serial(..., bytesize=serial.SEVENBITS, 
    parity=serial.PARITY_EVEN, stopbits=serial.STOPBITS_ONE) 

我不能確定這些參數當然是正確的;你必須找到正確的。

+0

似乎我有一些pyserial的配置是錯誤的,我會看看並稍後更新,謝謝你 – csw

0

打印CHR(0xb0-0x80)打印CHR(0xae-0x80的) 。 等 - 我懷疑你的數據長度設置不正確,(數據位)。

相關問題