上节课我们实现了GPIO的输出功能,还记得我们在文章最后给出的小作业么br>
4.4按键检测点亮LED灯软件设计
4.4.1编程要点
1)移植LED函数。
2)编写按键检测函数,检测对应GPIO端口输入电平变化。
3)根据GPIO输入,决定GPIO输出。
4.4.2代码分析
1)Delay延时函数
老规矩,新建文件夹delay,再新建”bsp_delay.c”与”bsp_delay.h”文件。
2)LED代码分析
关于LED部分代码,大家可以把上节课编写的代码中的LED部分,直接复制到本例程User文件夹下,然后在工程中直接添加 .c文件,并把.h文件所在路径包含起来。
关于LED部分代码分析详见上一节内容,此处不再过多赘述。
3)KEY代码分析
首先需要将按键使用到的GPIO宏定义。接着将按键存在的按下与关断两种状态定义为数字电路中的1与0。
4.4.3下载验证
程序编译无错进行烧录后,可以观察到上电后板载LED处于关闭状态,当按下按键松开后,LED亮起,再次按下按键松开后,LED关闭。
本节内容到此结束。
到现在为止,在库函数上,我们已经使用过时钟初始化函数、GPIO置位、复位、翻转函数、GPIO初始化函数,按照教程自己编写完成例程的朋友应该已经能找到这些函数声明所在的位置了。
依据笔者的学习经验,学习WB32库函数开发最为重要的就是会使用官方固件库中的函数,能够找到你需要的函数就已经向WB32库开发迈出了最重要的一步,接下来,就是要了解这些函数到底怎么用,我们会在下一节教程中,结合本节课的例程进行详细的分析。
另外,细致的你会发现在上一节点亮LED例程中的延时函数竟然在本节例程中成为了一个单独的模块,你觉得这样做是更方便还是更麻烦了呢个程序上方会有很多#include,你知道它的作用么例,为何main函数中除了包含“wb32f10x.h”外还包含有”bsp_led.h”和”bsp_key.h”,而bsp_key.c中包含着 “bsp_key.h”与”bsp_delay.h”,bsp_led.c中只包含”bsp_led.h”呢
有答案的朋友可以在博客下方交流哦~
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!