USB论坛-百合电子工作室USB专题站

 找回密码
 我要注册
搜索
热搜: USB学习板
查看: 8681|回复: 2

程序代码问题(共用体EPPFLAGS怎么理解)

[复制链接]

12

主题

0

好友

100

积分

产品用户

Rank: 4

发表于 2015-9-27 11:44:29 |显示全部楼层
typedef union _epp_flags
{
        struct _flags
        {
                INT8U bus_reset                   : 1;        //总线复位标志
                INT8U suspend                     : 1;        //挂起改变标志
                INT8U setup_packet                    : 1;        //收到SETUP包
                INT8U remote_wakeup                           : 1;        //远程唤醒标志(未使用)
                INT8U in_isr                              : 1;        //USB中断服务标志
                INT8U control_state                        : 2;        //控制端点处理标志
                                                                                                        //0: IDLE           空闲状态
                                                                                                        //1: TRANSMIT  数据发送状态
                                                                                                        //2: RECEIVE   数据接收状态
                 INT8U configuration                        : 1;        //配置标志(0: 未配置; 1: 已经配置)
                INT8U command                                : 1;        //未使用
                INT8U ep1_rxdone                        : 1;        //端点 1 收到数据标志
                INT8U ep2_rxdone                        : 1;        //端点 2 收到数据标志
                INT8U ep2buf_full                        : 1;        //端点 2 接收双缓冲区满标志
        } bits;
        INT16U value;
} EPPFLAGS;
回复

使用道具 举报

12

主题

0

好友

100

积分

产品用户

Rank: 4

发表于 2015-9-27 11:46:21 |显示全部楼层
共用体和结构体都有,到底哪些变量是结构体,那些变量是共用体!还是整个结构体都是共用体的变量!
回复

使用道具 举报

6

主题

0

好友

1154

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2015-9-27 22:36:17 |显示全部楼层
这句代码的结果是定义了一个共用体变量EPPFLAGS,占用两个字节存储空间,“INT16U value”这句用于占位,目的是为变量EPPFLAGS分配两个字节存储空间,实际使用时EPPFLAGS变量只用到其内部字义的结构体,结构体只用了12个位,余下6个位无意义

其实建议学习USB时不要过多关注USB接口芯片的固件程序底层驱动代码,应该将精力放在USB的枚举过程、各种命令及描述符等。
回复

使用道具 举报

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

USB开发网 (渝ICP备09006681号-4)

GMT+8, 2024-3-29 04:08 , Processed in 0.050593 second(s), 19 queries .

百合电子工作室版权所有
回顶部