关于数字温度传感器18B20编程问题。

bluesky140 2016-04-29 09:00:29
在这个芯片的编程中,有这么一段
union{
uchar c[2];
uint x;
}temp;


后面的程序中,又有这么一段:
temp.c[1]=readb();
temp.c[2]=readb();
return temp.x/2;


我想问大家的是:这个x和c什么关系啊?程序中没有给x赋过任何值,最后怎么返回啊?x/2又是什么意思?
...全文
177 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ct19770108 2016-05-03
  • 打赏
  • 举报
回复
是采集两次数据求平均值
王力东 2016-05-03
  • 打赏
  • 举报
回复
联合,数据结构的一种
追梦的魂影 2016-05-02
  • 打赏
  • 举报
回复
变量c和x占用的是同一段内存空间,模拟仿真的时候可以看到
fly 100% 2016-04-30
  • 打赏
  • 举报
回复
可以看看 c语言中的共用体。
bluesky140 2016-04-29
  • 打赏
  • 举报
回复
谢谢楼上!再次接着问: return temp.x/2; 返回的是x向左移位一位的值吗?
qq_34830863 2016-04-29
  • 打赏
  • 举报
回复
union 这个数据类型里,数组c和x共用一个16位的内存空间,所以x的前八位是c[1],后八位是 c[2]

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧