[应用相关] 位段的操作

[复制链接]
1475|23
 楼主| dongnanxibei 发表于 2020-10-21 16:54 | 显示全部楼层 |阅读模式
有时候为了方便读取某个寄存器的某些位段,可以将其定义为联合体。将位段作为结构体,与寄存器进行联合。
  1. void test7(void)
  2. {
  3.         typedef union
  4.         {
  5.             unsigned int allBits;
  6.             struct
  7.             {
  8.                 unsigned a :4;
  9.                 unsigned b :4;
  10.                 unsigned c :4;
  11.                 unsigned d :4;

  12.             };
  13.         }Sta;
  14.         Sta ss;
  15.         ss.allBits=0x1234;
  16.         printf("0x%x\n",ss.allBits);
  17. //主意a是低4位,b是高4位
  18.         ss.a=0x1;
  19.         ss.b=0x2;
  20.         ss.c=0x03;
  21.         ss.d=0x04;
  22.         printf("0x%x\n",ss.allBits);
  23.        
  24. }


 楼主| dongnanxibei 发表于 2020-10-21 16:55 | 显示全部楼层
刚才从某个大佬那学到的。分享过来。
airwill 发表于 2020-10-21 22:44 | 显示全部楼层
位段, 这个功能在初步弱化,  由于编译器的支持太弱,  现在到处都称不推荐采用.
其实用好了, 还是有些优势的.
zhuomuniao110 发表于 2020-10-22 22:48 | 显示全部楼层
还能这么用啊。
zhuomuniao110 发表于 2020-10-22 22:49 | 显示全部楼层
airwill 发表于 2020-10-21 22:44
位段, 这个功能在初步弱化,  由于编译器的支持太弱,  现在到处都称不推荐采用.
其实用好了, 还是有些优势 ...

是的,我看很多单片机厂家的头文件有出现这个概念的
和下土 发表于 2020-10-23 23:28 | 显示全部楼层
这个概念是大致相同的。
yiyigirl2014 发表于 2020-10-24 17:24 | 显示全部楼层
还是挺有用的。
airwill 发表于 2020-10-25 10:46 | 显示全部楼层
硬件库里大量的寄存器位操作,  也没有看到库里使用 位段 来处理
观海 发表于 2020-11-13 11:20 | 显示全部楼层
用联合体会不会有隐患啊
guanjiaer 发表于 2020-11-13 11:21 | 显示全部楼层
这样处理的优势是什么
heimaojingzhang 发表于 2020-11-13 11:23 | 显示全部楼层
会不会出现操作失误读取错误数据的情况呢
keaibukelian 发表于 2020-11-13 11:24 | 显示全部楼层
用这种形式 会不会占用太多资源呢
labasi 发表于 2020-11-13 11:26 | 显示全部楼层
不错的办法 可以试试看
 楼主| dongnanxibei 发表于 2020-11-24 23:23 | 显示全部楼层
keaibukelian 发表于 2020-11-13 11:24
用这种形式 会不会占用太多资源呢

这种方法是节约资源的。
 楼主| dongnanxibei 发表于 2020-11-24 23:24 | 显示全部楼层
heimaojingzhang 发表于 2020-11-13 11:23
会不会出现操作失误读取错误数据的情况呢

不会的,怎么会。
 楼主| dongnanxibei 发表于 2020-11-24 23:26 | 显示全部楼层
guanjiaer 发表于 2020-11-13 11:21
这样处理的优势是什么

方便对位的操作。
yichunshan 发表于 2020-11-25 11:56 | 显示全部楼层
没觉得好在哪里
 楼主| dongnanxibei 发表于 2020-11-25 12:03 | 显示全部楼层

很多厂家的头文件都有这种应用。
yichunshan 发表于 2020-11-25 12:05 | 显示全部楼层
dongnanxibei 发表于 2020-11-25 12:03
很多厂家的头文件都有这种应用。

知道
我是说没觉得好在哪里。
海滨消消 发表于 2020-11-25 15:46 | 显示全部楼层
会出现操作失误读取错误数据的情况不?看不上感觉不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

225

主题

3848

帖子

18

粉丝
快速回复 在线客服 返回列表 返回顶部