欢迎来到天天文库
浏览记录
ID:42733905
大小:51.00 KB
页数:3页
时间:2019-09-21
《Stm32 学习笔记2》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、先简要说下这系列学习笔记的内容和学习目标。第一章时钟第二章GPIO第三章中断第四章模拟USB鼠标第五章实现U盘第六章TFFS驱动移植第七章USB设备开发总结STM32学习笔记2---GPIO1、I/O端口配置方法第1步:打开使用到的GPIOA、GPIOC、GPIOD、GPIOF或GPIOG的时钟;第2步:配置所有的按键GPIO为浮动输入模式(实际上CPUf复位后就是输入状态)2、常用的I/O配置函数和结构①GPIO_InitTypeDef结构体typedefstruct{u16GPIO_Pin;/*GPIO端口选择*/GPIOSpeed_TypeDefGPIO_S
2、peed;/*以设置选中管脚的速率*/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_FLO
3、ATING浮空输入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时钟控制命令,共三个相关函数:voidRCC_APB2PeriphClockCmd(u32RCC_APB2Periph,FunctionalStateNewState)APB2外设时钟使能;voidRCC_APB1PeriphClockCmd(u32RCC_APB
4、1Periph,FunctionalStateNewState)APB1外设时钟使能voidRCC_AHBPeriphClockCmd(u32RCC_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设置参见G
5、PIO_InitTypeDef结构体④GPIO_SetBits:设置指定的数据端口位为1voidGPIO_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()1、例程注释voidgpio_config(){GP
6、IO_InitTypeDefGPIO_InitStructure;/*使用I/O资源:led->pb1,key->pa0,打开GPIOA,GPIOB和端口复用的时钟,复用时钟用于中断*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA
7、RCC_APB2Periph_GPIOB
8、RCC_APB2Periph_AFIO,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;/*设置为推挽输出*/GPI
9、O_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);/*初始化PB1*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;/*设置浮空输入*/GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);/*初始化PA0*/
10、GPIO_
此文档下载收益归作者所有