stm32-独立按键
来源:互联网 发布:钱夫人淘宝店天涯 编辑:程序博客网 时间:2024/05/21 10:40
时间有点仓促,写的比较粗糙 先写点上去吧
前面讲过了io口的设置,按键不过是把io口设置成其他的模式,如果按键接的vcc就将相应io口设置成下拉输入模式,接地就上拉输入模式(没按下的时候就要默认高电平)
然后就和51的时候一样处理抖动,读取状态就行了,我也改成没使用商家给的函数,只使用库函数了
以下为key驱动
#include "key.h"
void delay_ms(u16 time)
{
u16 i=0;
while(time--)
{
i=8000; //////////....????
while(i--) ;
}
}
void KEY_Init()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;
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 mode)
{
u8 temp;
temp=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15);
if(temp==0)
{
delay_ms(10);
temp=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15);
if(temp==0)
{
return 0;
}
}
return 1;
}
以下为main,led和上次一样
#include "led.h"
#include "key.h"
void delayms(u16 time)
{
u16 i=0;
while(time--)
{
i=8000;
while(i--) ;
}
}
int main()
{
KEY_Init();
LED_Init();
while(1)
{
if(KEY_Scan(0))
{
GPIO_SetBits(GPIOA,GPIO_Pin_8);
delayms(500);
}
else
{
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
delayms(500);
}
}
//return 0;
}
- stm32-独立按键
- 我的一个基于stm32的独立按键扫描方式
- 独立按键
- 独立按键
- stm32 按键
- stm32,按键
- STM32--按键
- 【按键】[独立按键] - 2:双击
- 独立按键和矩阵按键
- STM8S103 独立按键检测
- 五、独立按键
- BTF020独立按键程序
- 单片机独立按键
- 独立按键的原理
- 单片机独立按键
- 独立按键实现秒表
- 单片机独立按键
- STM32的独立看门狗
- 谷哥的小弟学后台(15)——JSP(1)
- WP Anti Spam 小墙 1.84 代码
- 蓝桥杯ALGO-150(递归求二项式系数值 )
- 埃及分数问题 【IDA*】
- 3.1 算法
- stm32-独立按键
- Git版本控制(3)
- 面试题15:链表中倒数第k个结点
- 史上最全的CSS hack方式一览
- 进程的静止和活动状态
- 【死磕JVM】——-2、Java代码编译和执行的整个过程
- 解决eclipse中导入项目中文乱码的问题
- SCU-1114数学三角 (动态规划)
- Omi原理-Hello Omi