STC15W单片机解析GPS数据

4 篇文章 0 订阅

由于要做一个GPS码表,需要解析GPS模块串口发送的数据,目前串口还没做,先做解析GPS数据工作.

本文虽然CPU选型STC15W,但实际未用到任何STC15W硬件,完全是在仿真下获取解析数据

GPS模块串口发送的数据有固定的格式,我研究的不多,只知道叫NMEA,我是参考了

LeiOuYang / NMEA0183-C 的库

在此感谢LeiOuYang!

我把它复制到我的码云里了,方便大家下载

复制到码云的NMEA0183-C

keil STC15W解析GPS工程

在keil中进行了如下适配:

修改原有库中用到pdate的参数,替换成ppdate,因为pdate是C51关键字

我在KEIL C51中实现了GPS数据解析:

 以下结构体是你可以解析到的数据,例程我只选了new_latitude,比较方便用于验证。其他参数根据你的需求选用

/* 数据解析状态结构体定义 */
    typedef struct _gps_nmea
    {
    	/* 数据解析状态 */ 
    	unsigned char parity;    		   /* 校验计算和 */ 
    	unsigned char is_checksum_term;    /* 当前字段域为校验字 */
    	char term[15];           		   /* 当前字段域缓冲区,','为字段域分割符 */
    	unsigned char sentence_type;       /* 字段类别,见枚举 sentence_types*/
    	unsigned char term_number;         /* 当前字段域序号 */
    	unsigned char term_offset;         /* 字段域数据偏移量 */
    	unsigned char gps_data_good;       /* GPS数据有效状态 */
    	
    	/* 数据解析结果 */
    	unsigned int new_time;                  /* UTC时间 */
    	unsigned int new_date;                  /* UTC日期 */
    	float new_latitude;             		/* 纬度 */
    	float new_longitude;            		/* 经度 */
    	int new_altitude;             			/* 海拔高度 cm*/
    	float new_speed;                		/* 地速 km/h */
    	float new_course;               		/* RMC、VTG字段磁偏角信息*/
    	float new_gps_yaw;              		/* HDT航向信息 */
    	unsigned short new_hdop;                /* 水平精度 *100 */
    	unsigned char new_satellite_count;      /* 当前使用卫星的颗数 */
    	unsigned char new_quality_indicator;    /* 定位状态 */

    	unsigned int last_RMC_ms;         	    /* 最后更新字段时间 */
    	unsigned int last_GGA_ms;
    	unsigned int last_VTG_ms;
   	unsigned int last_HDT_ms;
	}gps_nmea;

以上程序有瑕疵.后面更正.

程序计算的数据还需校验才可以.

在线获取GPS坐标

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
STC15W单片机是一种常用的控制单元,适用于各种电子设备和电子控制系统。太阳能追光系统利用太阳能电池板捕捉太阳的光线,并根据光线的方向调整太阳能电池板的位置,以实现太阳能的最大转换效率。 要实现太阳能追光,首先需要使用STC15W单片机来获取光线的方向。可以通过连接光敏电阻或光敏二极管等传感器模块,让STC15W单片机实时测量光线的强弱,并将其转换为适当的电压或电流信号。 然后,单片机需要通过连接电机驱动器来控制太阳能电池板的转动。可以使用直流电机或步进电机,在太阳能电池板的两个方向上实现转动。单片机可以通过调整电机的速度和方向来实现太阳能电池板的自动追踪。 STC15W单片机可以编程实现太阳能追光系统的控制逻辑。可以编写程序,使单片机根据测量到的光线强度通过PID算法或其他控制算法来自动调整太阳能电池板的位置,使其始终朝向光线最强的方向。 另外,为了保护太阳能电池板和单片机,可以在系统中加入适当的保护电路。例如,使用过压保护电路、过流保护电路和短路保护电路等,以确保系统的稳定和安全运行。 总之,STC15W单片机可以实现太阳能追光系统的智能控制和优化能量利用。它可以根据实时测量的光线强度,控制太阳能电池板的转动,使其始终朝向太阳的方向,从而最大程度地提高太阳能的转换效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

armcsdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值