STM32学习笔记(四):简易的GPIO配置 |
您所在的位置:网站首页 › output按键 › STM32学习笔记(四):简易的GPIO配置 |
1、前言
前面配置了灯光后大家应该都差不多知道GPIO参数的配置了,在本学习笔记中,我们学习–按键控制;这个是在灯光的基础上把输出改为输入,具体的配置还要看你的原理图,如果是上拉的话就上拉,没有就浮空。 2、添加相关的标准库在用标准库配置GPIO的时候,我们需要手动添加这个GPIO的库函数。 如下图的步骤所示添加,添加如第五步里面的几个库函数,如果看这个图还看不懂话请私聊我或者在下方的评论区评论留言。 3、GPIO配置参数的简单说明在添加了相关的库函数之后我们可以去哪个stm32f10x_gpio.c的头文件stm32f10x_gpio.h中可以看到在STM32F103中的GPIO配置需要配置那些参数。 如图: 上图展示了需要配置这三个参数: uint16_t GPIO_Pin GPIOSpeed_TypeDef GPIO_Speed GPIOMode_TypeDef GPIO_Mode 其中这三个参数是什么意思呢? 第一个是表示第几个引脚; 第二个表示引脚速度需要配置多少;如: 引脚速度需要多少可根据自己的需求配置。在本例子不需要到。 第三个表示引脚的模式是什么;如: 引脚模式是什么可根据自己的需求配置。在本例子中为上拉输入 知道了这些参数的意思后就我们就好开始配置了。 4、GPIO初始化程序在上面介绍了GPIO配置的参数后我们可以开始编写GPIO初始化程序了。 void Led_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; //定义一个需要配置的GPIO引脚结构体变量 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//在使用那个GPIO引脚的前提下需要开启相关的时钟,这个很重要 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_14|GPIO_Pin_15; //按键连接单片机的引脚分别为PC14-15。 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; //引脚模式配置为上拉输入模式。 GPIO_Init(GPIOC, &GPIO_InitStructure); //配置好参数之后就开始初始化GPIO。 }如上图为按键的初始化程序。 5、GPIO电平的控制如果想要读取GPIO的电平的话,我们还需要使用到相关的库函数,这个也是在stm32f10x_gpio.c中,如果想要查找的,去头文件比较方便。 下面我就不介绍了,反正就在这两个文件里面,下面我直接给出程序和注释 #define KEY1 (GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_15)) #define KEY2 (GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_14))这个实在头文件里面定义的,使用了宏定义做个简单替代,可以方便调用和直观明了。 6、主函数 int main() { Delay_Init(72); Led_Init(); Key_Init(); while(1) { if(KEY1) { delay_ms(10);//按键消抖 LED1_ON; LED2_OFF; } else if(KEY2) { delay_ms(10);//按键消抖 LED1_OFF; LED2_ON; } } } |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |