#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) 这句怎么理解呢!谢谢 |
RE:(((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)
意思:PERIPH的实际地址是否 == GPIOA_BASE定义的地址。这个用来判断输入的地址是否正确。
回复:(((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)
((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)
意思:PERIPH的实际地址是否 == GPIOA_BASE定义的地址。这个用来判断输入的地址是否正确。
谢谢&(PERIPH))怎么理解
(uint32_t*)怎么理解
(*(uint32_t*))怎么理解
RE:(((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)
&(PERIPH) 是取PERIPH的变量的位置。注意&符合也是与的意思。
(uint32_t*)强制转换成uint32_t类型
*取&ERIPH位置的内容。
回复:(((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)
标准C语言:
&(PERIPH) 是取PERIPH的变量的位置。注意&符合也是与的意思。
(uint32_t*)强制转换成uint32_t类型
*取&ERIPH位置的内容。
非常感谢!!!
回复:(((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)