第一步 首先在cubeMX中创建工程,找到引脚PB0,将其作用选为Output,创建代码;
第二步 端口使能,将GPIOB端使能,RCC->IOPENR |= 1<<1;
第三步 寄存器初始化,对GPIO_InitTypeDef 类型的结构体GPIO_InitStruct中的变量进行赋值
__GPIO_RCC_GPIOB_CLK_ENABLE(); //将GPIOB的时钟使能
GPIO_InitStruct.Pin=LED_Pin; //配置使用的GPIO引脚
GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;//推挽输出
GPIO_InitStruct.Pull=GPIO_InitStruct.Pull = GPIO_NOPULL;//上下拉不配置
GPIO_InitStruct.Spees=GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;//控制输出速度
或是直接对GPIOB进行操作
GPIOB->MODER |= 1<<0
GPIOB->OTYPER |= ~(1<<0)
GPIOB->OSPEEDR |= 1<<1
GPIOB->PUPDR |= 1<<0
第四步 控制引脚高低电平
HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
GPIOx是GPIO组,GPIO_Pin是具体引脚,PinSate是输出的高低电平
或是用
HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
GPIOx是GPIO组,GPIO_Pin是具体引脚
该函数是将引脚的输出状态翻转,如高电平到低电平,实现控制