网易首页 > 网易号 > 正文 申请入驻

串口传输数据时,结构体如何转换-道合顺大数据

0
分享至

嵌入式系统的串口数据传输都是以字节为单位,但是有些特殊的数据类型,比如浮点型float a=231.5,在内存是如何表示的呢?

我们知道浮点型float数据类型占用4个字节,实际上在内存当中a=0x43678000,只是嵌入式芯片访问a时,知道a是浮点型数据,所以一次性读取4个字节,而且也按照浮点型的数据表示规定,将a转换为十进制的可读数据231.5。

如果我们从串口接收到4个字节数据{0x43,0x67,0x80,0x00},如何把这4个字节的数据转换为float型呢?

直接令float a=0x43678000这是不行的(不信的读者可以自行验证),这就是串口通讯当中经常遇到的问题,如果数据传输中包括了浮点型数据,在这里我们可以通过共用体或者结构体来解决。

对于共用体:

typedef union
{
float f;
unsigned char s[4];
}Union_test;

f的4个字节和s[4]的4个字节是共用一个区域,如果我们令f=231.5,然后通过VS的监视窗查看s[4]的数值,下面是测试程序:

#include
//共用体
//float f;//4个字节
//char s[4];//4个字节
typedef union
{
float f;
unsigned char s[4];
}Union_test;
typedef struct st
{
float f1;
}Struct_test;
void main(void)
{
float a=231.5;
Union_test x;
Struct_test z;
x.f = a;
z = *(Struct_test *)(&(x.s));
printf("z=%.2f\r\n",(double)z.f1);
printf("End of this programme\r\n");
}

监视结果如下所示:

我们同样适用结构体做了相同的实验,将数组s[4]={0x00,0x80,0x67,0x43}的首地址s[0]强制转换赋值给结构体z,最后打印输出的结果也是231.5

这里我们看到原本应该是0x4367_8000的数据实际存储的时候变成了00H 80H 67H 43H,这是因为计算机系统使用了小端存储,什么是小端存储呢?

我们都知道,对于一个超过一个字节的数据,其在计算机中的存储需要跨越字节。某些机器选择在存储器中按照从最低为有效字节到最高有效字节的顺序存储对象,而另一些机器则按照从最高为有效字节到到最低为有效字节的顺序存储,前一种存储方式被称为小端存储,后一种方式被称为大端存储。

举个例子,对于十六进制数0x01234567,其字节的存储顺序便依赖于机器,如下:

我们可以通过下面的函数测试是大端存储还是小端存储:

void test(void)
{
int a = 1;
unsigned char *start=&a;
if(*start == 1)
printf("小端存储");
else if(*start == 0)
printf("大端存储");
}

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
穆帅坐不住了!皇马众星世界杯两极分化,核心彻底崩盘拉胯

穆帅坐不住了!皇马众星世界杯两极分化,核心彻底崩盘拉胯

澜归序
2026-06-29 07:22:49
尼克松晚年坦言:他后悔当年访问中国,只因毛主席识破了他的计谋

尼克松晚年坦言:他后悔当年访问中国,只因毛主席识破了他的计谋

晓风洞察
2026-05-20 14:35:33
“一台电脑获取8次平台补贴款”,有人篡改商品SN码套取平台补贴,涉案金额超2700万元,上海警方:成功抓获2个犯罪团伙

“一台电脑获取8次平台补贴款”,有人篡改商品SN码套取平台补贴,涉案金额超2700万元,上海警方:成功抓获2个犯罪团伙

扬子晚报
2026-06-28 20:48:50
中方接到消息,俄罗斯或断供柴油,梅德韦杰夫断言:七大挑战来临

中方接到消息,俄罗斯或断供柴油,梅德韦杰夫断言:七大挑战来临

影孖看世界
2026-06-29 12:40:37
1992年湖北老人当街被交警扣押,司机拨出神秘电话,惊动市委书记

1992年湖北老人当街被交警扣押,司机拨出神秘电话,惊动市委书记

苏大强专栏
2024-07-26 17:22:17
机场女安检“仙人跳”,多名男子贵重财物遭洗劫

机场女安检“仙人跳”,多名男子贵重财物遭洗劫

凑近看世界
2026-06-29 09:36:45
马桶不用的时候,盖子是掀开好还是关上好?很多人还不懂,看完就明白了!

马桶不用的时候,盖子是掀开好还是关上好?很多人还不懂,看完就明白了!

设计最前沿
2026-06-26 23:01:06
中国家庭存款8级大曝光,70%的人卡在第6级,这道坎到底有多难过

中国家庭存款8级大曝光,70%的人卡在第6级,这道坎到底有多难过

小陆搞笑日常
2026-06-16 11:38:56
同是穆斯林都信真主,爱吃烤肉,土耳其和阿拉伯为何相互看不顺眼

同是穆斯林都信真主,爱吃烤肉,土耳其和阿拉伯为何相互看不顺眼

孤痞野猫
2026-06-27 17:08:05
儿子给哈佛捐20多亿,母亲给麻省捐11亿,家族在中国年收租百亿?

儿子给哈佛捐20多亿,母亲给麻省捐11亿,家族在中国年收租百亿?

生活新鲜市
2026-06-18 20:08:24
越南,已经主动从中国的经济巨舰上跳船了!

越南,已经主动从中国的经济巨舰上跳船了!

回京历史梦
2026-06-22 18:43:18
3400亿光模块龙头股,深夜发布

3400亿光模块龙头股,深夜发布

21世纪经济报道
2026-06-29 07:16:23
黄牛掏空退休金买了500份《GTA6》!自信一定会血赚

黄牛掏空退休金买了500份《GTA6》!自信一定会血赚

游民星空
2026-06-26 23:06:18
声音、节奏、力度:掌控这三点,同房就是一场艺术

声音、节奏、力度:掌控这三点,同房就是一场艺术

精彩分享快乐
2026-06-29 12:00:09
森保一:目标是夺冠 安切洛蒂:世界杯无绝对热门

森保一:目标是夺冠 安切洛蒂:世界杯无绝对热门

体坛周报
2026-06-29 09:10:13
老了才明白:只有一个女儿的家庭,女婿再好,也别交出这4样东西

老了才明白:只有一个女儿的家庭,女婿再好,也别交出这4样东西

游戏收藏指南
2026-06-29 11:58:13
禁止小米汽车进校园?涉事高校回应

禁止小米汽车进校园?涉事高校回应

观察者网
2026-06-29 11:07:08
难怪小明王到死都不让位给朱元璋,你看看他身边的谋士都说了啥?

难怪小明王到死都不让位给朱元璋,你看看他身边的谋士都说了啥?

掠影后有感
2026-06-29 09:55:08
三条世界级产线,在我国投产

三条世界级产线,在我国投产

极目新闻
2026-06-28 22:30:38
从不屑到正视!日媒公开承认:中国发动机技术,全面赶超日企

从不屑到正视!日媒公开承认:中国发动机技术,全面赶超日企

沙雕小琳琳
2026-06-27 15:20:32
2026-06-29 13:32:49
道合顺
道合顺
精准替代、搜索未来
430文章数 88关注度
往期回顾 全部

科技要闻

OpenAI推迟上市,那“Kimi们”呢?

头条要闻

在德网友吐槽欧洲高温:赶紧结束吧 别逼我回武汉避暑

头条要闻

在德网友吐槽欧洲高温:赶紧结束吧 别逼我回武汉避暑

体育要闻

两周飞5万公里!因凡蒂诺遭环保人士猛批

娱乐要闻

萧蔷宣布捐出参加“浪姐”所有收入

财经要闻

35岁职场人,又好找工作了?

汽车要闻

精致大气 尊界V800诠释顶级体验的新旗舰MPV

态度原创

亲子
教育
手机
艺术
时尚

亲子要闻

老叶较真丨47天女婴从月嫂臂弯滚落摔伤致颅内出血,孩子远期后遗症风险如何兜底?

教育要闻

德国竞赛题:拓展c^c=c,猜答案不严谨

手机要闻

麒麟9010S+7000mAh电池 华为nova 16手机全面评测: 全系手感最优的真香款

艺术要闻

晚明"四大天王"手稿,看了方知书法妙!

夏天裤子别总穿紧身的,试试这几款阔腿裤,百搭舒适又显瘦

无障碍浏览 进入关怀版