简介:本项目为基于STM32F103R6为核心 的按键点亮LED工程。为新手刚入门输入和输出最基本的操作联动的任务。无论按键程序和LED程序均与之前任务思路一致,非常简单易懂。因此在此阶段引入模块化编程思维,藉由正点原子模板创立工程,为后续做更复杂的程序打下坚实的基础。
目的:学会输入和输出联动;学会模块化编程思维。
硬件:PA1和PA2分别连接两个按键,PB6和PB8分别连接两个LED灯。
软件:按键和LED程序以正点原子为基础创建该项目工程。仿真经过验证,可以直接用于实物开发板。
一、Proteus仿真图
电路非常简单,分别由两个按键和两个LED二极管组成,功能上每个按键分别负责点亮一个LED。
二、MED代码
按键子程序key.c主要代码如下:
//注意此函数有响应优先级,KEY0>KEY1
u8 KEY_Scan(u8 t) //按键扫描函数。
{
if(KEY0==0||KEY1==0){ //按下按键
{
delay_ms(10); //去抖动
if(KEY0==0) //PA1按下
{
return KEY0_PRES;} //KEY0_PRES,KEY0按下
else if(KEY1==0) ///PA2按下
{
return KEY1_PRES; } //同理。
}}
if( t==KEY0_PRES) return KEY0_PRES; //若按键未改变,返回原值
if(t==KEY1_PRES) return KEY1_PRES;
return 0;// 无按键按下
}
LED的代码请大家参考之前的代码即可。
本项目首次引进了项目工程的概念,不再采用单程序文件的开发模式。为了后续复杂工程的模块化开发奠定了基础,为后续程序移植切换平台都提供了很好的代码环境。代码兼容正点原子的代码,大家同学们可以随意移植,非常方便。程序由主程序main.c为核心,头文件调用key.h和led.h的方式将key.c和led.c引入形成工程文件。请各位同学仔细学习工程配置和头文件互相调用的方法。
三、仿真效果和源代码资源
基于Proteus无实物零基础STM32入门自学教程(五)--按键点亮LED-单片机文档类资源-CSDN下载
更多推荐
基于Proteus无实物零基础STM32入门自学教程(五)--按键点亮LED
发布评论