资源描述:
《STM32学习笔记及TIMpwm》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一、GPIO基本功能的使用:GPIO功能文件相关操作:1.使用GPIO功能前,首先要初始化系统,最简单的方法为:添加stm32f10x_rcc.c,打开stm32f10x_conf.h在第41行将/*#include"stm32f10x_rcc.h""*/两边注释符去掉,在main函数中添加代码SystemInit();2.添加stm32f10x_gpio.c3.打开stm32f10x_conf.h在37行将/*#include"stm32f10x_gpio.h"*/两边注释符去掉GPIO口使能:1.定义一个初始化类型结构体变量,我们为这个结构体里的各个变
2、量赋值,GPIO_InitTypeDefGPIO_InitStructure;2.开启GPIO时钟,只有开启了GPIO时钟,对应端口才可以正常工作,GPIO口对应时钟APB2RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);3.为结构体赋值设置GPIO口为输出GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;//设置引脚GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//通用推挽输出,其它选项GPIO_InitStructure.G
3、PIO_Speed=GPIO_Speed_50MHz;//输出最大频率,其它选项设置GPIO口为输入GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;//设置引脚GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//悬空输附:GPIO_Mode值GPIO_Mode_AIN模拟输入GPIO_Mode_IN_FLOATING浮空输入GPIO_Mode_IPD下拉输入GPIO_Mode_IPU上拉输入GPIO_Mode_Out_OD开漏输出GPIO_Mode_Out_PP推挽输出GP
4、IO_Mode_AF_OD复用开漏输出GPIO_Mode_AF_PP复用推挽输出GPIO_Speed值GPIO_Speed_10MHz最高输出速率10MHzGPIO_Speed_2MHz最高输出速率2MHzGPIO_Speed_50MHz最高输出速率50MHz4.使能GPIO口GPIO_Init(GPIOA,&GPIO_InitStructure);例:voidGPIOA0_Init(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,EN
5、ABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,
6、&GPIO_InitStructure);}GPIO使用:输出状态:GPIO口置高:GPIO_SetBits(GPIOA,GPIO_Pin_0
7、GPIO_Pin_1);GPIO口置底:GPIO_ResetBits(GPIOA,GPIO_Pin_0);写数据到GPIO的某个引脚:GPIO_WriteBit(GPIOA,GPIO_Pin_15,Bit_SET);写数据到GPIO:GPIO_Write(GPIOA,0x1101);得到GPIO口状态:GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0);u16ReadValue;Rea
8、dValue=GPIO_ReadOutputData(GPIOC);例:#defineLED0_OFFGPIO_ResetBits(GPIOA,GPIO_Pin_0)#defineLED0_ONGPIO_SetBits(GPIOA,GPIO_Pin_0)#defineLED0GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0)intmain(void){while(1){delay();if(LED1)LED0_OFF;elseLED0_ON;}}输入状态:得到GPIO口状态:GPIO_ReadInputDataBit(GPIO
9、A,GPIO_Pin_3)u16ReadValue;ReadVal