时钟GPIO中断模拟USB鼠标实现U盘TFFS驱动移植USB设备开发总结STM32学****笔记2---GPIOI/O端口配置方法第1步:打开使用到的GPIOA、GPIOC、GPIOD、GPIOF或GPIOG的时钟;第2步:配置所有的按键GPIO为浮动输入模式(实际上CPUf复位后就是输入状态)常用的I/O配置函数和结构①GPIO_InitTypeDef结构体typedefstruct{u16GPIO_Pin;/*GPIO端口选择*/GPIOSpeed_TypeDefGPIO_Speed;/*以设置选中管脚的速率*/GPIOMode_TypeDefGPIO_Mode;/*设置选中管脚的工作状态*/}GPIO_InitTypeDef; GPIO_Pin描述GPIO_Pin_None无管脚被选中GPIO_Pin_X选中管脚X,X值0--15GPIO_Pin_All选中全部管脚GPIO_Speed描述GPIO_Speed_10MHz最高输出速率10MHzGPIO_Speed_20MHz最高输出速率20MHzGPIO_Speed_50MHz最高输出速率50MHzGPIO_Mode描述GPIO_Mode_AIN模拟输入GPIO_Mode_IN_FLOATING浮空输入GPIO_Mode_IPD下拉输入GPIO_Mode_IPU上拉输入GPIO_Mode_Out_OD开漏输出GPIO_Mode_Out_PP推挽输出GPIO_Mode_AF_OD复用开漏输出GPIO_Mode_AF_PP复用推挽输出 ②RCC_XXXPeriphClockCmd(),XXX时钟控制命令,共三个相关函数:_APB2PeriphClockCmd(_APB2Periph,FunctionalStateNewState)APB2外设时钟使能; _APB1PeriphClockCmd(_APB1Periph,FunctionalStateNewState)APB1外设时钟使能_AHBPeriphClockCmd(_AHBPeriph,FunctionalStateNewState)AHB时钟使能 ③GPIO_Init:根据GPIO_InitTypeDef结构中指定的参数初始化外设GPIOx寄存器 voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct) 输入:GPIOx:x可以是A,B,C,D或者E,来选择GPIO外设 GPIO_InitStruct设置参见GPIO_InitTypeDef结构体 ④GPIO_SetBits:设置指定的数据端口位为1 voidGPIO_SetBits(GPIO_TypeDef*GPIOx,u16GPIO_Pin) 输入:GPIOx:x可以是A,B,C,D或者E,来选择GPIO外设 GPIO_Pin:待设置的端口,取GPIO_Pin_x(x可以是0-15)的任意组合 ⑤GPIO_ResetBits:清除端口值(置0) voidGPIO_ResetBits(GPIO_TypeDef*GPIOx,u16GPIO_Pin) 输入同GPIO_SetBits()例程注释voidgpio_config(){ GPIO_InitTypeDefGPIO_InitStructure; /*使用I/O资源:led
Stm32 学习笔记2 来自淘豆网www.taodocs.com转载请标明出处.