米客-显示驱动专家

STM32之GPIO小结

0
阅读(2298)



需用到的".c"库函数为stm32f10x_gpio.cstm32f10x_rcc.c

1.启动相应Port xRCC(复位始终控制)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx, ENABLE);
x
可以是AG , GPIO都由APB2(高速外设)时钟控制

2. GPIO初始结构中的三个参数赋值(该结构名需程序前定义:"GPIO_InitTypeDef GPIO_InitStructure;"
三个参数分别为
引脚:GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;
速度:GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
模式:GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
三个参数的取值可查《固件函数库》

3.GPIO初始化函数GPIO_Init(GPIOx,&GPIO_InitStructure),将前面赋完值的结构定义到Port x
x
可以是AG

4.接着即可用GPIO_ResetBits(GPIOx,GPIO_Pin_y)函数将引脚置0

GPIO_SetBits(GPIOx,GPIO_Pin_y)函数将引脚置1
x
可以是:AF

y可以是:015;多个可用" | "隔开,如:GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9
5.
也可以用GPIO_ReadInputDataBit(GPIOx,GPIO_Pin_y)函数读取输入引脚的值

或 用GPIO_ReadOutputDataBit(GPIOx,GPIO_Pin_y)函数读取输出引脚的值

x可以是:AF

y可以是:015;多个可用" | "隔开,如:GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9

注:a)读取整个Port值的函数为GPIO_ReadInputData(GPIOx)GPIO_ReadOutputData(GPIOx)

b)写整个Port值的函数为GPIO_Write(GPIOx,数值)

c)一般按前3步启动后,被设定的GPIO引脚都会被置0(低电平)

Baidu
map