jack7612 发表于 2011-1-13 13:39:20

(((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)

#define IS_GPIO_ALL_PERIPH(PERIPH) (((*(uint32_t*)&(PERIPH)) == GPIOA_BASE) || \
                                                                             ((*(uint32_t*)&(PERIPH)) == GPIOB_BASE) || \
                                                                             ((*(uint32_t*)&(PERIPH)) == GPIOC_BASE) || \
                                                                             ((*(uint32_t*)&(PERIPH)) == GPIOD_BASE) || \
                                                                             ((*(uint32_t*)&(PERIPH)) == GPIOE_BASE) || \
                                                                             ((*(uint32_t*)&(PERIPH)) == GPIOF_BASE) || \
                                                                             ((*(uint32_t*)&(PERIPH)) == GPIOG_BASE))

中的((*(uint32_t*)&(PERIPH)) == GPIOA_BASE) 这句怎么理解呢!谢谢

发表于 2011-1-13 14:17:06

RE:(((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)

((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)
意思:PERIPH的实际地址是否 == GPIOA_BASE定义的地址。这个用来判断输入的地址是否正确。

jack7612 发表于 2011-1-13 15:38:08

回复:(((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)

回复第 2 楼 安 于2011-01-13 06:17:06发表:
((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)
意思:PERIPH的实际地址是否 == GPIOA_BASE定义的地址。这个用来判断输入的地址是否正确。 

谢谢&(PERIPH))怎么理解
       (uint32_t*)怎么理解
      (*(uint32_t*))怎么理解

发表于 2011-1-13 16:01:37

RE:(((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)

标准C语言:
&(PERIPH) 是取PERIPH的变量的位置。注意&符合也是与的意思。
(uint32_t*)强制转换成uint32_t类型
*取&PERIPH位置的内容。

jack7612 发表于 2011-1-13 17:02:13

回复:(((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)

回复第 4 楼 安 于2011-01-13 08:01:37发表:
标准C语言:
&(PERIPH) 是取PERIPH的变量的位置。注意&符合也是与的意思。
(uint32_t*)强制转换成uint32_t类型
*取&PERIPH位置的内容。 

非常感谢!!!

你那么美_ 发表于 2014-2-25 10:30:20

回复:(((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)

如果不等又是什么情况呢?
页: [1]
查看完整版本: (((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)