1、先完成必备的SYS,RCC初始化,时钟树初始化,存储位置初始化

    2、选择PC13口做输出,PB2做输入,在图形化界面上点击并选择
    image.png
    3、配置PC13口
    image.png

    GPIO output level 初始化输出电平
    GPIO mode 推挽或者开漏
    GPIO Pull-up/Pull down 输出上下拉
    Max output speed 电平翻转速度
    USER label 用户标签

    4、配置PB2口
    image.png

    GPIO mode 输入模式
    GPIO Pull-up/Pull down 输入上下拉

    5、生成代码,查看初始化代码

    1. void MX_GPIO_Init(void)
    2. {
    3. GPIO_InitTypeDef GPIO_InitStruct = {0};
    4. /* GPIO Ports Clock Enable */
    5. __HAL_RCC_GPIOC_CLK_ENABLE();
    6. __HAL_RCC_GPIOD_CLK_ENABLE();
    7. __HAL_RCC_GPIOB_CLK_ENABLE();
    8. __HAL_RCC_GPIOA_CLK_ENABLE();
    9. /*Configure GPIO pin Output Level */
    10. HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
    11. /*Configure GPIO pin : PC13 */
    12. GPIO_InitStruct.Pin = GPIO_PIN_13;
    13. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    14. GPIO_InitStruct.Pull = GPIO_PULLUP;
    15. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
    16. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
    17. /*Configure GPIO pin : PB2 */
    18. GPIO_InitStruct.Pin = GPIO_PIN_2;
    19. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    20. GPIO_InitStruct.Pull = GPIO_PULLUP;
    21. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
    22. }

    6、相关函数

    1. void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
    2. 引脚电平翻转函数
    3. 例:HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
    4. PA8引脚电平进行翻转
    5. void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
    6. 写引脚电平状态
    7. 例:HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);
    8. PD2引脚电平置高
    9. HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
    10. PD2引脚电平置低
    11. GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
    12. 读取引脚电平状态
    13. 例:i=HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2);
    14. 读取PB2引脚电平
    15. __weak void HAL_Delay(uint32_t Delay);
    16. 延时函数
    17. 例:HAL_Delay(500);
    18. 延时500ms