q20005 发表于 2011-1-6 20:04:01

大家解答一下这个宏定义什么意思? 谢谢!

#define          LedReg        (*((volatileUint16 *)0x41FF))

我是新手,大家解答一下这个宏定义什么意思? 谢谢!

lsfsxfljj 发表于 2011-1-6 20:26:32

(volatileUint16 *)0x41FF----转成指向一个Uint16类型的指针
(*((volatileUint16 *)0x41FF))----前面加个*就是指针的表示了
一般用在寄存器地址为0x41FF定义上,volatile这个是亮点,注意下

tiancaigao7 发表于 2011-1-6 20:38:40

这样你直接对LedReg复制就相当于对于0x41FF为起始地址的16位地址赋值。

823032003 发表于 2011-1-6 20:54:13

回复【1楼】lsfsxfljj
(volatileuint16 *)0x41ff----转成指向一个uint16类型的指针
(*((volatileuint16 *)0x41ff))----前面加个*就是指针的表示了
一般用在寄存器地址为0x41ff定义上,volatile这个是亮点,注意下
-----------------------------------------------------------------------

(volatileUint16 *)0x41FF----转成指向一个Uint16类型的指针
(*((volatileUint16 *)0x41FF))----前面加个*就是《取该地址的值》

ITOP 发表于 2011-1-6 21:16:29

果断MARK!
页: [1]
查看完整版本: 大家解答一下这个宏定义什么意思? 谢谢!