U-Blox芯片GPS 模块的UBX协议解析与配置_第1页
U-Blox芯片GPS 模块的UBX协议解析与配置_第2页
U-Blox芯片GPS 模块的UBX协议解析与配置_第3页
U-Blox芯片GPS 模块的UBX协议解析与配置_第4页
U-Blox芯片GPS 模块的UBX协议解析与配置_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、U-Blox 芯片 GPS 模块的 UBX 协议析与配写代码的 TobemU-Blox 支持 、 三协议,程序中使用的是 UBX 议,其协议格式如 下图所示:需要注意的是对数据类型大一个字节的数据存储使用的是小端模式故行数据 读写时,先低字节,后高字节。协议格式后两个字节的校验码按如下方式进行求取:GPS 进使用前需进行初始配置主要涉及串口通信配置将置写入 eeprom 中GPS 的更新频率、要进行转换读取的数据包等:switch(packet_count)case 1:/ GPS UBX 38400packet_count+;break;case 2:/在eprom packet_count

2、+;break;case 3:/ gps为hz为hz,采 utcpacket_count+;break;case 4:UBX_CFG_MSG_Encode(NAV_POSLLH); /packet_count+;break;case 5:UBX_CFG_MSG_Encode(NAV_STATUS); /GPS_Encode_Index = 0;packet_count+;break;case 6:UBX_CFG_MSG_Encode(NAV_SOL); /packet_count+;break;case 7:UBX_CFG_MSG_Encode(NAV_VELNED); /packet_cou

3、nt+;break;GPS 的置以命令形式进行要参考手册中的 CFG 的关指令面配置 UBX 协 输出为例,进行 GPS 配命令的说明:/void UBX_CFG_PRT_Encode(u16 Protocol_out,u32 Baudrate) / 四个write_two_byte_to_GPS_Encode_Buffer(0X0001); / write_two_byte_to_GPS_Encode_Buffer(0X0000);write_two_byte_to_GPS_Encode_Buffer(0X08D0);write_two_byte_to_GPS_Encode_Buffer(0

4、X0000);/write_byte_to_GPS_Encode_Buffer(Baudrate%256);write_byte_to_GPS_Encode_Buffer(Baudrate%(0XFFFF+1)/256);write_byte_to_GPS_Encode_Buffer(Baudrate%(0XFFFFFF+1)/(0XFFFF+1);write_byte_to_GPS_Encode_Buffer(Baudrate/(0XFFFFFF+1);write_two_byte_to_GPS_Encode_Buffer(0X0001); /UBXwrite_two_byte_to_GPS

5、_Encode_Buffer(Protocol_out); /write_two_byte_to_GPS_Encode_Buffer(0X0000);write_two_byte_to_GPS_Encode_Buffer(0X0000);前面说到数据类型大于一字节的数据按小端模式进行存储因先写低字节后写高字 节:/写 2 void write_two_byte_to_GPS_Encode_Buffer(u16 value)GPS_Encode_BufferGPS_Encode_Index+=value; /GPS_Encode_BufferGPS_Encode_Index+=(value8);

6、 / GPS 的率配置如下,根据手册,导航频率参数设置似乎不对:UBX_CFG_RATE_Encode(250,250,Time_source_UTC); /gps 4hz 4hz utc 程序中使用串口 7 中断进行 GPS 数的接收,一旦还接收到数据,就将定时器 7 的数清 零,定时器 7 设置为 100ms 中断,假如 100ms 内没有数据接收到,且接收缓冲区的首地址 内容非空,则认为接收完成。涉及的两个中断分别如下:串口 中:void UART7_IRQHandler(void)static u16 TX_Send_Count=0;u8 USART7_Receive_date;if(

7、UART7-SR&(1DR;if(GPS_UART7_RX_STA&0X8000)=0)/完 -1)TIM_SetCounter(TIM7,0); /if(GPS_UART7_RX_STA=0) /TIM_Cmd(TIM7, ENABLE); /GPS_BufferGPS_UART7_RX_STA+=USART7_Receive_date;elseGPS_UART7_RX_STA = 0; /包if(UART7-SR&(17) /USART_ClearFlag(UART7,USART_FLAG_TC);if(GPS_UART7_TX_STA&0 x8000)!=0) /,USART_SendD

8、ata(EVAL_COM7,UART7_Send_BufferTX_Send_Count+);if(TX_Send_Count=UART7_TX_DATA_LEN) /完USART_ITConfig(EVAL_COM7, USART_IT_TXE, DISABLE); /TX_Send_Count=0;GPS_UART7_TX_STA=0; /if(USART_GetFlagStatus(UART7,USART_FLAG_ORE)=1) /USART_ReceiveData(UART7);定时器 中:void TIM7_IRQHandler(void) /100msif (TIM_GetITStatus(TIM7, TIM_IT_Update) RESET) / if(GPS_Buffer0!=0)GPS_UART7_RX_STA|=0X8000; / 100ms USART_ITConfig(EVAL_COM7, USART_IT_RXNE, DISABLE);/再TIM_ClearITPendingBit(TIM7, );TIM_Cmd(TIM7, DISABLE); /gps_update_time = Time_micros();然后对接收到的数据进行轮询,当找到协议的帧头匹配时,则对数据进行拆解。 for(index=0;indexsizeof(GPS_Buffer)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论