ser.readline()返回空字符(^ @)

时间:2018-03-08 14:12:03

标签: gps debian pyserial beagleboneblack nmea

我在BeagleBone Black中通过RS-232从GPS读取时间和日期。 我有2个BeagleBones Black Rev C,使用Putty作为终端:

第一个使用Debian Stretch:

root@beaglebone:~# uname -r
4.16.0-rc2-bone3
root@beaglebone:~# cat /etc/debian_version
9.3

第二个与Debian Wheezy:

root@beaglebone:~# uname -r
3.8.13-bone79
root@beaglebone:~# cat /etc/debian_version
7.11

两者都有pyserial lib版本3.4

第一个,Debian Strech完美地阅读消息:

timestamp_gps = ser.readline()

输出:

$GPZDA,113340.00,08,03,2018,,*62
timestamp formatted = 2018-03-08 11:33:40.00

第二个,Debian Wheezy没有读过comman和其他角色:

timestamp_gps = ser.readline()

输出:

$GPZDA355.0000306
timestamp formatted = 0-03-0 3:55:.00

应该加入的时间戳:

  

2018-03-08 13:55:47

所以,应该被重新加载的消息:

  

$ GPZDA,13:55:47.00,08,03,2018 ,, * 43

如果我将输出保存在txt文件中并使用 nano 编辑文件,我会得到:

  

$ GPZDA ^ @ ^ @ 355 ^ @ ^ @ 00 ^ @ 0 ^ @ ^ @ 03 ^ @ ^ @ ^ ^ @ ^ @ ^ @ ^ @ ^ @ ^ ^ ^ ^ @

     

^ @ 0 ^ @ ^ @ - 03-0 ^ @ ^ @ 3:55:^ @ ^ @。00

任何帮助,都会有所帮助

0 个答案:

没有答案