你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

哪位大神能帮忙解读下这部分程序是什么意思head=14这种格....

[复制链接]
aizx 提问时间:2019-8-22 09:34 /
temp =0xffffffff & ( *(head + 14) + *(head + 15)*0x00000100 + *(head + 16)*0x00010000 + *(head + 17)*0x01000000);
    temp8 = 0xff & (*(head +30));
   GPS_Info->longtitude = temp / 10000000.0 + temp8 / 1000000000.0;
        

   temp =0xffffffff & ( *(head + 18) + *(head + 19)*0x00000100 + *(head + 20)*0x00010000 + *(head + 21)*0x01000000);
   temp8 = 0xff & (*(head +31));
   GPS_Info->latitude = temp / 10000000.0 + temp8 / 1000000000.0;

收藏 评论10 发布时间:2019-8-22 09:34

举报

10个回答
aizx 回答时间:2019-8-22 09:37:54
大神们求帮忙
aizx 回答时间:2019-8-22 09:38:24
顶顶顶
奏奏奏 回答时间:2019-8-22 09:43:24
head + 14
就是名称叫做“head”这个数组里面第14+1个成员

*(head + 14)
就是取这个成员的值
aizx 回答时间:2019-8-22 09:47:28
奏奏奏 发表于 2019-8-22 09:43
head + 14
就是名称叫做“head”这个数组里面第14+1个成员

大神能详细给我讲讲( *(head + 14) + *(head + 15)*0x00000100 + *(head + 16)*0x00010000 + *(head + 17)*0x01000000);这块嘛  *(head + 15)*0x00000100这是什么意思   他们一串相加又是什么意思  
wenyangzeng 回答时间:2019-8-22 09:55:20
这个貌似GPS的数据运算,楼主应该先熟读相关的GPS器件的数据手册才能理解。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

tgw860910 回答时间:2019-8-22 09:55:27
aizx 发表于 2019-8-22 09:47
大神能详细给我讲讲( *(head + 14) + *(head + 15)*0x00000100 + *(head + 16)*0x00010000 + *(head + 17 ...

就是左移8位的意思,把 * 0x100 换成 << 8 会更好

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

toofree 回答时间:2019-8-22 09:55:28
head是个指针,类型不知道,但根据你的程序,32位无符号整形的可能性比较大;
*(head + 15)就是指针指向的内容;
*(head + 15)*0x00000100,指针指向内容乘后面的数;

一级一级慢慢算吧
middle1102 回答时间:2019-8-22 10:32:40
head是buffer的起始地址,*(head + 14)就是取基于起始地址偏移14个单位的内容,没有什么特别之处

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

aizx 回答时间:2019-8-22 10:49:07
middle1102 发表于 2019-8-22 10:32
head是buffer的起始地址,*(head + 14)就是取基于起始地址偏移14个单位的内容,没有什么特别之处 ...

static uint8_t  Buffer[512];
static uint8_t  Buffer2[512]     这个buffer是什么意思呢
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版