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
