独闷闷网

 找回密码
 立即注册
搜索
查看: 1687|回复: 0
收起左侧

[原创] 宏定义指针指向结构体可以方便访问指定的某个寄存器。

[复制链接]
发表于 2014-11-6 11:25:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Ack-深圳:
#define LCD_BASE         ((u32)(0x6C000000 | 0x000007FE))
#define LCD              ((LCD_TypeDef *) LCD_BASE)

typedef struct
{  u16 LCD_REG;
   u16 LCD_RAM;
} LCD_TypeDef;

这个LCD是指向一个指针变量吗?

預腾--上海:
把这个地址强转成类型的指针,方便访问LCD的寄存器.结合联合体可以访问寄存器的每一个位,很常见的用法.


Ack-深圳:
那我的LCD->LCD_REG的值和LCD->LCD_RAM值都是互相独立的吗?互不影响吗?

預腾--上海:
独立的。C语言熟了,学单片机很快的。

Ack-深圳:
那他们地址就是差2个字节是吗?

預腾--上海:
对的。百度了解一下“结构体内存对齐”。

Ack-深圳:
如果有个4个字节的变量,那他们的地址就要以4个字节来偏移了是吗?

預腾--上海:
按结构体中,最大成员对齐,一句两句 说不清。

Ack-深圳:
恩。这个我了解过。

預腾--上海:
结构体成员放的顺序注意一下就好了。节省内存。


乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2021-7-31 09:35 , Processed in 0.141059 second(s), 18 queries .

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