STM32
直播中

孔朱磊

7年用户 909经验值
私信 关注
[问答]

请问STM32普通的GPIO输出正确的配置方式是怎样的?

目前通过CubeMx工具配置PA2、PA4管脚为普通IO输出,默认电平分别为高电平、低电平,其自动产生的代码如下,严格意义上来讲应该是先配置IO管脚功能(如IO输入、IO输出、模拟、功能复用),再配置普通IO输出管脚默认输出电平状态,而通过CubeMx工具配置GPIO顺序则是相反的,请问下这里是否存在设计不严谨地方?正确配置顺序是怎样的?谢谢
static void MX_GPIO_Init(void){GPIO_InitTypeDef GPIO_InitStruct = {0};
/ GPIO Ports Clock Enable /HAL_RCC_GPIOC_CLK_ENABLE();HAL_RCC_GPIOA_CLK_ENABLE();
/Configure GPIO pin Output Level /HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET);
/Configure GPIO pin Output Level /HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
/Configure GPIO pin : PA2 /GPIO_InitStruct.Pin = GPIO_PIN_2;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;HAL_GPIO_Init(GPIOA,  GPIO_InitStruct);
/Configure GPIO pin : PA4 /GPIO_InitStruct.Pin = GPIO_PIN_4;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(GPIOA,  GPIO_InitStruct);
}




回帖(1)

陈亮

2024-3-29 15:18:02
只要先把时钟开了,寄存器可以正常写就可以了,不存在先后。
举报

更多回帖

×
20
完善资料,
赚取积分