1、先完成必备的SYS,RCC初始化,时钟树初始化,存储位置初始化
2、选择PC13口做输出,PB2做输入,在图形化界面上点击并选择
3、配置PC13口
GPIO output level | 初始化输出电平 |
---|---|
GPIO mode | 推挽或者开漏 |
GPIO Pull-up/Pull down | 输出上下拉 |
Max output speed | 电平翻转速度 |
USER label | 用户标签 |
4、配置PB2口
GPIO mode | 输入模式 |
---|---|
GPIO Pull-up/Pull down | 输入上下拉 |
5、生成代码,查看初始化代码
void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
/*Configure GPIO pin : PC13 */
GPIO_InitStruct.Pin = GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pin : PB2 */
GPIO_InitStruct.Pin = GPIO_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}
6、相关函数
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
引脚电平翻转函数
例:HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
将PA8引脚电平进行翻转
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
写引脚电平状态
例:HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);
将PD2引脚电平置高
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
将PD2引脚电平置低
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
读取引脚电平状态
例:i=HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2);
读取PB2引脚电平
__weak void HAL_Delay(uint32_t Delay);
延时函数
例:HAL_Delay(500);
延时500ms