总结下调BC20模块会卡顿的地方,基本上一般的定位、WIFI模块我估摸都是这种流程
AT命令
室内通过阅读手册先测试一些基础命令,保证硬件部分无问题 (当然不读手册百度更快)
这里未列举几个重要的
AT+QGNSSC=1 //打开GNSS。
AT+QGNSSCMD=0,"$CFGSYS,h10" 设置BDS模式
AT+QGNSSRD=“NMEA/GGA” 输出GNSS 定位数据
命令时延
至于为什么每个命令都需要一定延时其实我也不知道是为什么,当初单用串口连接笔记本外场测试半天才出坐标,可能是以下情况:
1、天线卡扣没卡紧,螺母没旋紧
2、串口配置(当我没说)
3、最最重要的命令时延,尤其是这一句 == AT+QGNSSRD=“NMEA/GGA”== 买到品质相对不好的模块可能半天才出坐标,一般是20s到40s,半天不出坐标心刺挠,有时候就四个命令能玩一天,别问为什么,都是眼泪。。。
代码部分
项目需求:上电自动发坐标,不断更新坐标,直到后期通过UDP协议上传到自己的服务器,当然是把一个BC模块当做一个客户端,随后再次提升需求,多个BC模块客户端上传,还要服务器主动控制输出~~(泪目)~~
使用的代码为串口一转串口二
下面直接说一下编程要注意的地方
1、串口读取为指针数组,提取过程需要强制类型转换
2、每一条命令都需要时延,循环数组赋值也需要时延
3、注意外部文件的调用
4、模块不稳定性,建议增加看门狗
5、指针数组赋值问题
服务器代码看我另一篇博文:https://blog.csdn.net/qq_41519058/article/details/110421604
BC20 git:https://github.com/wyx121664841/project-for-BC20
服务器 git:https://github.com/wyx121664841/-Test-for-server-and-client.git