OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8229|回复: 4

求教!用MDK,位域定义后如何整体赋值,及分别赋值?

[复制链接]

7

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-2-27
在线时间
11 小时
发表于 2013-3-21 18:18:10 | 显示全部楼层 |阅读模式
            
typedef struct
{
unsigned char b0:1;
unsigned char b1:1;
unsigned char b2:1;
unsigned char b3:1;
unsigned char b4:1;
unsigned char b5:1;
unsigned char b6:1;
unsigned char b7:1;
}REG8_TypeDef;
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-3-21 19:28:10 | 显示全部楼层
回复 支持 反对

使用道具 举报

7

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2013-2-27
在线时间
11 小时
 楼主| 发表于 2013-3-21 19:44:37 | 显示全部楼层
能举个例子吗。我研究
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-3-21 22:44:41 | 显示全部楼层
typedef union
{
    char CHAR;
    REG8_TypeDef BIT;

} MY_UNION;

MY_UNION s;

s.CHAR = 4;
s.BIT.b2 = 1;

-----------------

大概就是这样吧,n多年没用共用体了,可能语法有点小错误。
共用体移植性不太好,不同编译器语法有点差距。好像gcc支持s.b2=1这样的用法的,不过C99或C89不支持吧。



其实,还是建议直接用位操作。用共用体好像也有大小端的移植问题。

另,之前重复了,请问版主要怎样删帖?
业余程序玩家。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-22 00:04:28 | 显示全部楼层
回复【4楼】ofourme:
---------------------------------
帮你删了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-23 23:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表