博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
stm32-独立按键
阅读量:4956 次
发布时间:2019-06-12

本文共 1897 字,大约阅读时间需要 6 分钟。

时间有点仓促,写的比较粗糙   先写点上去吧

   前面讲过了io口的设置,按键不过是把io口设置成其他的模式,如果按键接的vcc就将相应io口设置成下拉输入模式,接地就上拉输入模式(没按下的时候就要默认高电平)

然后就和51的时候一样处理抖动,读取状态就行了,我也改成没使用商家给的函数,只使用库函数了

  以下为key驱动

 

#include "key.h"#include "delay.h"u8 k_past=0,k_now=0;void KEY_Init(){    GPIO_InitTypeDef GPIO_InitStructure;    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE);        GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//PA15是JTAG用到的引脚,此函数可以关闭JTAG功能把此引脚当成普通引脚        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;//PA15为key1    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//上拉输入    GPIO_Init(GPIOA,&GPIO_InitStructure);    //    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;//    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//上拉输入//    GPIO_Init(GPIOC,&GPIO_InitStructure);//    //    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;//    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;//下拉输入//    GPIO_Init(GPIOA,&GPIO_InitStructure);    }u8 KEY_Scan(){    u8 temp;    temp=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15);    if(temp==1)    {        k_past=k_now;        k_now=0;    }    else if(!(k_past==1&&k_now==1))    {        delay_ms(20);        temp=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15);        if(temp==0)        {            k_past=k_now;            k_now=1;            return 1;//1代表按键按下        }        else         {            k_past=k_now;            k_now=0;        }    }    return 0;}

 

以下为main,led和上次一样

#include "led.h"#include "delay.h"#include "sys.h"#include "key.h"//ALIENTEK Mini STM32开发板范例代码2//按键输入实验           //技术支持:www.openedv.com//广州市星翼电子科技有限公司 int main(void) {        delay_init();             //延时函数初始化          LED_Init();                   //初始化与LED连接的硬件接口    KEY_Init();              //初始化与按键连接的硬件接口    while(1)    {        if(KEY_Scan()&&k_past==0&&k_now==1)        {            LED0=!LED0;        }            }         }

以下为

GPIO_PinRemapConfig函数的说明

转载于:https://www.cnblogs.com/otaganyuki/p/7102076.html

你可能感兴趣的文章
2014.01.05php之运算符使用
查看>>
ACM_折线中点
查看>>
【笔记】网易微专业-Web安全工程师-04.WEB安全实战-1.DVWA部署
查看>>
ZOJ 3369 Saving Princess
查看>>
Unity2018 Package Manager消失的解决办法
查看>>
js进阶ajax的XMLHttpRequest对象的status和statustext属性(如果ajax和php联合使用的话:open连接服务器的第二个参数文件路径改成请求php的url即可)...
查看>>
Javaweb项目中文乱码
查看>>
CSUOJ-1979 古怪的行列式(模拟)
查看>>
Vue2.x directive自定义指令
查看>>
高低价促销法PK天天平价
查看>>
提示让IE8以下版本的浏览器去更新浏览器
查看>>
C#与mySql实战七:在界面中输入参数;
查看>>
PHP扩展之STOMP--安装
查看>>
ZooKeeper 部署
查看>>
选择排序可视化
查看>>
file 上传文件后缀名 限制
查看>>
Firefox默认可以调用JSON.stringify而IE却不行
查看>>
内存系列一:快速读懂内存条标签
查看>>
PHP的重载-使用魔术方法实现
查看>>
java内部类的四大作用
查看>>