做的怎么样了?
可以在串口助手上实时显示北斗模块的时间,并且是北京时间。基本实现所要求的实验现象。
遇到的问题。
(1)在没有拿到模块的时候,运行代码没有错误,就认为能够实现所要求的实验现象,但是上版验证之后发现问题很多。例如串口助手上显示了北斗发来的很多信息(因为本实验只显示时间),把GNZDA这行代码注释掉并没有用。
(2)串口助手上总是显示串口1接收来自串口3的数据。
(3)修改程序之后显示了日期,但是日和月显示00 00。
(4)时间显示的是协调世界时,而不是北京时间。
(5)想改成1s显示一次,但加上延迟发现时间全是0。
解决办法
对(1)和(2)其实是一个问题,代码最后打印的时串口1接收到串口3的数据,把UTC.year...这些函数通过sprintf函数保存在dtbuf里,再通过printf打印出去。
对(3)日月显示00 00是因为移植程序的时候日月这里没有改,temp得到的数据不用处理直接赋值给date和month就可以。
对(4)协调世界时比北京时间早八个小时,在UTC->hour=tempt/10000基础上加八就可以了, UTC->hour=tempt/10000+8。
对(5)不能加延时,模块默认的测量频率时5hz(即一秒输出五次定位信息)。
总结
(1)基础不够牢固,若是没有相关例程应该还会更晚才能完成任务。
(2)对北斗模块有了更深入的了解,为以后的应用打下基础。