
stm32中这句程序怎么矛盾呢,我看不懂啊,请高手指点一下
caseGPIOA_BASE:RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB2PeriphRese...
case GPIOA_BASE:
RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, DISABLE);
break; 展开
RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, DISABLE);
break; 展开
1个回答
展开全部
这是初始化GPIO的做法。
先把A口的时钟使能,再将其失能。这样A口就不能用了。
通常我们初始化也会这么写:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB
|RCC_APB2Periph_GPIOC |RCC_APB2Periph_GPIOD ,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_Init(GPIOD, &GPIO_InitStructure);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB
|RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD , DISABLE);
比你的句子多一个端口模式的配置 。
在keil Debug时你会从GPIO的寄存器看到,没有用到的IO都是这里初始化设置的模式。可见在你再次改动配置之前,IO都是按照上次的配置执行的。所以端口的模式我们也是有必要进行初始化的。
先把A口的时钟使能,再将其失能。这样A口就不能用了。
通常我们初始化也会这么写:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB
|RCC_APB2Periph_GPIOC |RCC_APB2Periph_GPIOD ,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_Init(GPIOD, &GPIO_InitStructure);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB
|RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD , DISABLE);
比你的句子多一个端口模式的配置 。
在keil Debug时你会从GPIO的寄存器看到,没有用到的IO都是这里初始化设置的模式。可见在你再次改动配置之前,IO都是按照上次的配置执行的。所以端口的模式我们也是有必要进行初始化的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询