STM32——GPIO外设输入用按键控制LED灯

本文详细介绍了如何在STM32F10x平台使用模块化编程,包括创建文件夹、编写.c和.h文件、初始化GPIO、LED灯和按键操作,以及利用.h文件进行函数声明。通过实例展示了清晰的主函数逻辑和模块化优势。
摘要由CSDN通过智能技术生成

本篇文章的重要就是程序的模块化编程

那么现在开始吧

第一步:新建工程(这个之前演示过了,所以我就直接跳过啦)

第二步:连接接线图

第三步:创建一个文件夹handware用来存放模块化

步骤与之前一样在工程文件夹新建文件夹然后放入软件最后添加路径

随后添加文件添加.c和.h文件,一个用于存放LED灯的相关程序,一个用于存放函数声明(让软件知道有这个东西)

第四步:LED.C的编写

#include "stm32f10x.h"    

这是.c文件的格式,下面用来存放主体代码

首先我们应初始化GPIO口

这个跟之前的GPIO初始化一样,只是要是都放在主函数里面,会显得很冗杂,所以将函数分门别类的放入每个.c文件中

接下来我们写LED开关灯函数

定义一个函数叫LED1_ON里面存放打开LED的代码,下面都是同理。

然后将这些的第一排复制粘贴到LED.h文件中

第五步:LED.h文件的编写

#infndef_LED_H

#define _LED_H

#endif

这是.h文件的头尾,其中对模块的声明都放在其中间,复制粘贴后

在mian文件中头文件声明就可以使用函数了

就像这样直接初始化LED的GPIO端口。(至于LED1_Turn)函数下文讲。

第六步:KEY.C文件的编写

同样先将按键的GPIO端口初始化

以上是读取按键的函数,上面都有注释(想放源码在上面,但是觉得大家打一下好像能记得更清楚,别介意啊)

主要要介绍GPIO_ReadInputDataBit这个函数

这个函数就是读取键码的函数,就是检测哪个按键按下了,都没有按下返回值就是0,谁按下了返回值就是谁,PB1返回值是1,PB11返回值是11,因为按下会有滤波,所以delay20ms来消除这些滤波。

随后再将这些函数的声明放入KEY.h文件中

第七步:按照要求创建函数

我们要实现电位取反功能

这里需要GPIO_ReadInputDataBit读取PB1和PB11的端口值,取反就可以实现按一次打开再按一次关闭的功能了,随后也跟之前一样放入.h文件就好

第八步:根据要求填写主函数

这个程序的大概逻辑就是:设一个变量keynum来储存键码返回值(全局变量)

进入主函数体,先初始化两个类型的GPIO的端口,随后进入while循环,读取按键情况,当1按下时,控制1的亮,点一下亮,再点就关闭。2键同理。

本文主要是展示模块化编程的好处,主函数看着很清楚逻辑很明确。希望对大家有帮助哈哈哈,希望大家能监督我最多两天一更,最近太懒了。大家要是看不明白可以去看看C语言的枚举,结构体,数据结构的知识,我也要去恶补了哈哈哈

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值