STM32H7的小总结(3)

1.GPIO的配置的步骤和相关函数

        (1)相关函数的定义结构体的配置

                1.GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

数用于读取引脚状态,通过 GPIO 的 IDR 寄存器读取。

                2.void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)

此函数用于设置引脚输出高电平或者低电平。使用 GPIO 的 BSRR 寄存器进行设置,
                3. void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
此函数用于设置引脚的电平翻转,使用 GPIO 的 ODR 寄存器进行设置
                4. HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
于锁住 GPIO 引脚所涉及到的寄存器,这些寄存器包括 GPIOx_MODER,GPIOx_OTYPER,
GPIOx_OSPEEDR,GPIOx_PUPDR,GPIOx_AFRL 和 GPIOx_AFRH
        (2)GPIO的配置的步骤
第 1 步: 使能 GPIO 所在总线的 AHB 时钟,__HAL_RCC_GPIOx_CLK_ENABLE()。
第 2 步: 通过函数 HAL_GPIO_Init()配置 GPIO。
(1) 通过结构体 GPIO_InitTypeDef 的成员 Mode 配置输入、输出、模拟等模式。
(2) 通过结构体 GPIO_InitTypeDef 的成员 Pull 配置上拉、下拉电阻。
(3) 通过结构体 GPIO_InitTypeDef 的成员 Speed 配置 GPIO 速度等级。
(4) 如果选择了复用模式,那么就需要配置结构体 GPIO_InitTypeDef 的成员 Alternate。
(5) 如果引脚功能用于 ADC、DAC 的话,需要配置引脚为模拟模式。
(6) 如果是用于外部中断/事件,结构体 GPIO_InitTypeDef 的成员 Mode 可以配置相应模式,相应
的上升沿、下降沿或者双沿触发也可以选择。
第 3 步: 如果配置了外部中断/事件,可以通过函数 HAL_NVIC_SetPriority 设置优先级,然后调用函
数 HAL_NVIC_EnableIRQ 使能此中断。
第 4 步: 输入模式读取引脚状态可以使用函数 HAL_GPIO_ReadPin。
第 5 步: 输出模式设置引脚状态可以调用函数 HAL_GPIO_WritePin()和 HAL_GPIO_TogglePin。
另外注意下面三个问题:
系统上电复位后,GPIO 默认是模拟模式,除了 JTAG 相关引脚。
关闭 LSE 的话,用到的两个引脚 OSC32_IN 和 OSC32_OUT(分别是 PC14,PC15)可以用在通用 IO,如果开启了,就不能再做 GPIO。
关闭 HSE 的话,用到的两个引脚 OSC_IN 和 OSC_OUT(分别是 PH0,PH1)可以用在通用 IO,如 果开启了,就不能再做 GPIO。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值