HAL GPIO 模块提供抽象的软件接口操作硬件GPIO模块. HPSYS和LPSYS各有一个GPIO模块,支持的特性有:
- 输出模式
- 输入模式, 可检测输入电平触发中断,支持高电平、低电平、上升沿、下降沿和双沿检测
HPSYS的硬件GPIO模块为 hwp_gpio1 (或称为GPIO_A), LPSYS的硬件GPIO模块为 hwp_gpio2 (或称为GPIO_B).
- Note
- 如果需要设置GPIO管脚为其他功能,或者更改上下拉驱动能力,请参考pinmux的设置PINMUX
详细的API说明参考 GPIO .
使用GPIO HAL
输出模式
配置GPIO1 pin10(即GPIO_A10)为输出模式,输出高电平
void write_pin(void)
{
uint16_t pin = 10;
GPIO_InitStruct.
Pin = pin;
}
输入模式(无中断)
配置GPIO1 pin10(即GPIO_A10)为输入模式,读取电平状态
void read_pin(void)
{
uint16_t pin = 10;
GPIO_InitStruct.
Pin = pin;
}
输入模式(有中断)
配置GPIO1 pin10(即GPIO_A10)为输入模式,双沿检测
void GPIO1_IRQHandler(void)
{
for (uint32_t i = 0; i <= 41; i++)
{
}
}
{
}
void detect_pin(void)
{
uint16_t pin = 10;
GPIO_InitStruct.
Pin = pin;
GPIO_InitStruct.
Pin = pin;
}