基于普中的STM32开发板原理图:
void LED_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct; //定义GPIO配置的结构体
__HAL_RCC_GPIOC_CLK_ENABLE(); //使能GPIOC的时钟
HAL_GPIO_WritePin(GPIOC, LED, GPIO_PIN_SET); //像GPIOC的LED引脚写数据
GPIO_InitStruct.Pin = LED; //选中的GPIO的引脚
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //选择输出方式为推挽输出
GPIO_InitStruct.Pull = GPIO_NOPULL; //没有上拉或下拉电阻
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; //选择低速传输
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); //将结构体的配置给GPIOC
}
GPIO结构体的成员
typedef struct
{
uint32_t Pin; //引脚
uint32_t Mode; //模式
uint32_t Pull; //上拉或者下拉
uint32_t Speed; //输出速度
} GPIO_InitTypeDef;
Pin的所有可选项:
GPIO_PIN_0
GPIO_PIN_1
GPIO_PIN_2
GPIO_PIN_3
GPIO_PIN_4
GPIO_PIN_5
GPIO_PIN_6
GPIO_PIN_7
GPIO_PIN_8
GPIO_PIN_9