/*********************************************************************************************************
【功能】GPIO管脚配置
【参数】GPIOx 端口,取值GPIOA~GPIOE
Pins 管脚组合,取值PIN0~PIN15或者它们之间任意“或运算”的组合形式
Mode 模式,取下列值之一:
GPIO_MODE_IN // 浮空输入(高阻抗)
GPIO_MODE_IN_PU // 弱上拉输入(典型值40KΩ)
GPIO_MODE_IN_PD // 弱下拉输入(典型值40KΩ)
GPIO_MODE_OUT // 推挽输出(±5mA驱动)
GPIO_MODE_OD // 开漏输出(需外接2.2~47KΩ上拉,用作输入时必须先置1)
【返回】无
【说明】在函数内部,GPIO_Speed参数被设置为10MHz,速度适中、功耗也不大
【示例】
void exam__gpioPinConfig(void)
{
gpioPeriphInit(GPIOA); // 初始化PA端口
gpioPinConfig(GPIOA, PIN1, GPIO_MODE_IN_PU); // 配置PA1为弱上拉输入
gpioPinConfig(GPIOA, PIN0 | PIN12, GPIO_MODE_OUT); // 配置PA0、PA12为推挽输出
gpioPeriphInit(GPIOC); // 初始化PC端口
gpioPinConfig(GPIOC, PIN_LOW | PIN8, GPIO_MODE_OD); // 配置PC0~PC8为开漏
}
*********************************************************************************************************/
void gpioPinConfig (GPIO_TypeDef *GPIOx, uint16_t Pins, GPIOMode_TypeDef Mode)
{
// 定义GPIO初始化结构体对象
GPIO_InitTypeDef init;
// 设定GPIO属性
init.GPIO_Pin = Pins;
init.GPIO_Speed = GPIO_Speed_10MHz;
init.GPIO_Mode = Mode;
// 正式配置
GPIO_Init(GPIOx, &init);
}
楼主是否可以参考一下?
详见:【原创】《wdxLib_for_GD32F103》驱动开发(提供高质量源代码)
|