找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

[M051] 结构体问题

[复制链接]
跳转到指定楼层
楼主
wanga87 发表于 2015-12-17 16:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
typedef struct
{
    union
    {
        __IO uint32_t u32ISPCON;

        struct
        {
            __IO uint32_t  ISPEN:1;
            __IO uint32_t  BS:1;
                __I  uint32_t  RESERVE0:2;
            __IO uint32_t  CFGUEN:1;
                __IO uint32_t  LDUEN:1;
            __IO uint32_t  ISPFF:1;
            __IO uint32_t  SWRST:1;
            __IO uint32_t  PT:3;
                __I  uint32_t  RESERVE1:1;
                __IO uint32_t  ET:3;
            __I  uint32_t  RESERVE2:17;
        } ISPCON;
    };

    union
    {
        __IO uint32_t u32ISPADR;
        __IO uint32_t ISPADR;
    };

    union
    {
        __IO uint32_t u32ISPDAT;
        __IO uint32_t ISPDAT;
    };

    union
    {
        __IO uint32_t u32ISPCMD;

        struct
        {
            __IO uint32_t  FCTRL:4;
            __IO uint32_t  FCEN:1;
            __IO uint32_t  FOEN:1;
            __I  uint32_t  RESERVE:26;
        } ISPCMD;
    };

    union
    {
        __I uint32_t u32ISPTRG;

        struct
        {
            __IO uint32_t  ISPGO:1;
            __I  uint32_t  RESERVE:31;
        } ISPTRG;
    };

    union
    {
        __I uint32_t u32DFBADR;
        __I uint32_t DFBADR;
    };

    union
    {
        __IO uint32_t u32FATCON;

        struct
        {
            __IO uint32_t  FPSEN:1;
            __IO uint32_t  FATS:3;
            __IO uint32_t  LFOM:1;
            __I  uint32_t  RESERVE:27;
        } FATCON;
    };
} FMC_T;
结构体里面包含联合体,但是联合体却没有命名,后面就像下面一样引用了!if (FMC->ISPCON.ISPFF == 1)
    {
        FMC->ISPCON.ISPFF = 1;
        return E_DRVFMC_ERR_ISP_FAIL;
    }    以上都是新塘库内提供的程序!虽然我看着有问题,但是在库内编译确实是没有问题!

为什么我照着这种结构来编译器却让我给联合体取个名字?   我想知道源程序是怎么通过的!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

沙发
CHLIN55 发表于 2015-12-18 21:08:34 | 只看该作者
這種結構應該是舊版BSP使用的,
建議樓主參考BSP CMSIS 3.00以後版本的寫法比較好.
回复 支持 反对

使用道具 举报

板凳
 楼主| wanga87 发表于 2015-12-23 10:07:19 | 只看该作者
我知道是旧版的,我就是想知道一开始他是怎么通过编译的,研究一下他的程序写法!
回复 支持 反对

使用道具 举报

地板
szgaos 发表于 2016-3-2 09:13:58 | 只看该作者
这个是常规用法,不知你用iar还是mdk,在iar中好用一点
回复 支持 反对

使用道具 举报

5#
andrewz 发表于 2016-3-2 15:45:43 | 只看该作者
没看过这样的结构体.
一般用我都会给它先取名字.
不然我自己会看不懂.
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU