完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
初入传感器生产企业,对于单片机的水平仅为天翔老师的10天学会单片机层次,下面的代码是一款传感器有关于数据包的编程部分,有几个问题想请教下。
union { // 静态共用体send_pack unsigned char buf[15]; // 数据包共15位 struct { unsigned char start0; // 包头0 0x1d unsigned char start1; // 包头1 0x1d unsigned char command; // 指令码 unsigned char len; // 数据长度 float d_ar; // 方向角 float d_bt; // 高低角 unsigned char chksum; // 校验码 unsigned char end0; // 包尾0 0x1e unsigned char end1; // 包尾1 0x1e }member; }send_pack; // 共用体send_pack定义结束 请问union,struct,member,send_pack这几个单词分别代表什么意思?在这段代码中的作用是什么? |
|
相关推荐
13个回答
|
|
|
|
|
|
感谢感谢
|
|
|
|
union最好别使用
|
|
|
|
|
|
|
|
云汉达人
union是共同体, struct是结构体 member是结构体的名字 send_pack是共同体的名字 作用: buf[0]=start0 buf[1]=start1 buf[2]=command ...... buf[13]=end0 buf[14]=end1 你发数据时,只去操作buf就可以了,也方便。 读取到buf的数据,自然就分配到struct 中的各成员了。 其中float 的数据占用buf中的四个元素。 善于使用struct与union会让你的程序好很多。 |
|
|
|
|
|
|
|
赶紧看书重新学习一遍C语言吧,推荐C Primer Plus(第五版),有电子版的。
|
|
|
|
感谢,从来没学过C语言,都是看天翔老师的书里面学了简单的一些。
|
|
|
|
请问如何将一个float型通过4个char型发送?
|
|
|
|
|
|
|
|
|
|
|
|
float型是32位,char是8位。可以将float型乘以10的N次方,去掉小数点。
|
|
|
|
建议买本C语言,或者是MATLAB看看
|
|
|
|
只有小组成员才能发言,加入小组>>
660 浏览 0 评论
1083 浏览 1 评论
2454 浏览 5 评论
2779 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2615 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
637浏览 9评论
632浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
765浏览 6评论
608浏览 5评论
651浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 01:31 , Processed in 1.625487 second(s), Total 106, Slave 85 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号