指针和地址求解释

2019-03-23 18:20发布

void GPIO_DeInit(GPIO_TypeDef* GPIOx)
{
  /* Check the parameters */
  assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
  
  switch (*(uint32_t*)&GPIOx)
  {
    case GPIOA_BASE:
      RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, ENABLE);
      RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, DISABLE);
      break;.....
不明白switch行中GPIOx为什么要取址,GPIOx本来不就是地址么?
#define GPIOA    ((GPIO_TypeDef*)GPIOA_BASE)
求解释
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
huaiqiao
1楼-- · 2019-03-25 00:22
辛昕 发表于 2016-2-12 16:18
GPIOX不是变量,是一个宏定义的地址值,该地址值被强制转换成 GPIO_TypeDef *型

我以为GPIOX中,如X的取值是A~I,这里是变量呢。看来我的理解有误了。不好意思。
Li_Lei
2楼-- · 2019-03-25 03:00
 精彩回答 2  元偷偷看……

一周热门 更多>