MYD-YA157C系列定制板GPS数据读取
在linux下,大多使用串口接收gps模块的原始数据,通过运行ls /dev命令,我们发现:
root@myir:~# ls /dev autofs fuse gpiochip9 loop-control mmcblk2 net ptyp4 ram13 ram9 stdout tty16 tty25 tty34 tty43 tty52 tty61 ttyp1 vcs vcsa3 vcsu6 block gpiochip0 hwrng loop0 mmcblk2boot0 null ptyp5 ram14 random tty tty17 tty26 tty35 tty44 tty53 tty62 ttyp2 vcs1 vcsa4 watchdog bus gpiochip1 i2c-0 loop1 mmcblk2boot1 ppp ptyp6 ram15 rfkill tty0 tty18 tty27 tty36 tty45 tty54 tty63 ttyp3 vcs2 vcsa5 watchdog0 cec0 gpiochip2 i2c-1 loop2 mmcblk2p1 ptmx ptyp7 ram2 rtc tty1 tty19 tty28 tty37 tty46 tty55 tty7 ttyp4 vcs3 vcsa6 zero char gpiochip3 iio:device0 loop3 mmcblk2p2 ptp0 qcqmi1 ram3 rtc0 tty10 tty2 tty29 tty38 tty47 tty56 tty8 ttyp5 vcs4 vcsu console gpiochip4 initctl loop4 mmcblk2p3 pts ram0 ram4 shm tty11 tty20 tty3 tty39 tty48 tty57 tty9 ttyp6 vcs5 vcsu1 cpu_dma_latency gpiochip5 input loop5 mmcblk2p4 ptyp0 ram1 ram5 snd tty12 tty21 tty30 tty4 tty49 tty58 ttySTM0 ttyp7 vcs6 vcsu2 disk gpiochip6 kmsg loop6 mmcblk2p5 ptyp1 ram10 ram6 spidev0.0 tty13 tty22 tty31 tty40 tty5 tty59 ttySTM2 ubi_ctrl vcsa vcsu3 fd gpiochip7 lircd loop7 mmcblk2rpmb ptyp2 ram11 ram7 stderr tty14 tty23 tty32 tty41 tty50 tty6 ttySTM3 uinput vcsa1 vcsu4 full gpiochip8 log mem mqueue ptyp3 ram12 ram8 stdin tty15 tty24 tty33 tty42 tty51 tty60 ttyp0 urandom vcsa2 vcsu5
在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序,这一点和其他操作系统不一样。它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。
盲猜ttySTM0-3中可能是我们GPS与主机通信的串口端口,我们使用microcom命令逐个测试一下。
Usage: microcom [-d DELAY] [-t TIMEOUT] [-s SPEED] [-X] TTY
参数如下:
-d 表示延时时间,一般我都不设置。
-t 表示超时时间,超多少时间就自动退出。单位为ms
-s 表示传输速度,波特率的意思,这个根据自己的情况而定。
-X 不加
最后指定你的串口设备。如 /dev/tty0
这个开发板使用的GPS芯片为BD-1612Z,通过查询网上的参数得知:
波特率范围:4800 bps ~115200 bps,默认9600bps,
8个数据位,无校验,1个停止位
该GPS模块默认使用9600bps波特率。使用microcom命令调试串口:
root@myir:~# microcom -s 9600 /dev/ttySTM3
终端成功打印出GPS信息,调试成功。