关于结构体与对应寄存器地址的问题

2019-07-15 21:00发布

//LCD地址结构体
typedef struct
{
        u16 LCD_REG;
        u16 LCD_RAM;
} LCD_TypeDef;
结构体定义成这样,如何让LCD_REG变量对应地址为0x6000 0000,LCD_RAM对应寄存器地址为0x6002 0000?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
dongyumin
2019-07-16 06:34
youhuofree0 发表于 2014-1-19 15:49
首先,谢谢您的回答,这个我知道,问题是我想让这个结构体第二个成员地址为0x6002 0000,后面用到LCD->L ...

typedef struct
{
  __IO uint16_t CR1;
  uint16_t  RESERVED0;
  __IO uint16_t CR2;
  uint16_t  RESERVED1;
  __IO uint16_t OAR1;
  uint16_t  RESERVED2;
  __IO uint16_t OAR2;
  uint16_t  RESERVED3;
  __IO uint16_t DR;
  uint16_t  RESERVED4;
  __IO uint16_t SR1;
  uint16_t  RESERVED5;
  __IO uint16_t SR2;
  uint16_t  RESERVED6;
  __IO uint16_t CCR;
  uint16_t  RESERVED7;
  __IO uint16_t TRISE;
  uint16_t  RESERVED8;
} I2C_TypeDef;
库里的结构体,定义了成员变量RESERVED来保留一些不用的地址空间,,,这些寄存器实质都是4字节的,而有效位都只有它们的低16位,软件上为了对齐,定义了保留成员变量用于填充内存。。。

一周热门 更多>