按逗号提取GPS数据中的UTC时间

这段代码展示了一个C程序,它从接收到的GPS串口数据中解析GNRMCC消息,提取年、月、日、小时、分钟和秒信息,并将它们分别存储在预定义的字符数组中。程序使用了`strtok`函数来分隔字符串,并通过`memcpy`将日期和时间数据拷贝到相应变量。
摘要由CSDN通过智能技术生成
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define len 20

char BDS_year[3];
char BDS_month[3];
char BDS_date[3];
char BDS_hour[3];
char BDS_min[3];
char BDS_sec[3];

char* p[len];
int i;
char uart3[60]={'$','G','N','R','M','C',',','0','2','2','4','5','6',',','V',',',',',',',',',',',',',',','1','7','0','8','2','1',',',',',',','M'};
void finddata(char* pending);
int main()
{
    finddata(uart3);
    return 0;
}
void finddata(char* pending)
{
    p[0]=strtok(pending,",");
    if(p!=NULL)
    {
        for(i=1;i<len;i++)
        {
            p[i]=strtok(NULL,",");
            if(p==NULL)
            {
                break;
            }
        }
    }

    memcpy(BDS_year,p[3]+4,2);
    memcpy(BDS_month,p[3]+2,2);
    memcpy(BDS_date,p[3],2);
    memcpy(BDS_hour,p[1],2);
    memcpy(BDS_min,p[1]+2,2);
    memcpy(BDS_sec,p[1]+4,2);
    printf("%s,%s,%s,%s,%s,%s\r\n",BDS_year,BDS_month,BDS_date,BDS_hour,BDS_min,BDS_sec);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值