知道个什么原理,就好办了。写相关的串口程序。
$GNZDA,152547.000,10,06,2022,00,00*4D
先检查收到的是不是"$"字符,是的话计数器清零,用计数器做下标存接收数组,再接收五个字符,看看数组内是不是接收了$GNZDA,是的话继续存入数组。不是就不管它,让串口接收程序空转。
等收到换行(0X0A),就可以关了串口中断,进行数据解析,更新DS1302了。当然,里面要做时区处理,每天的16:00:00~24:00:00(UTC),也就是北京时间0点到早上8点要做加一天处理,还有如果是月尾大小月30天31天,2月的闰年闰月2829,满年要加年之类的日期处理。如果要更精确那更多的处理。因为数据出来是最好要加1秒是比较准的,要不会慢1秒。而加1秒又要做什么满60秒分钟加1等等判断。
接口程序做好后就算没有接GPS模块,也可以用串口助手输入相应的一行字符调时,如下图。
|