蓝桥杯嵌入式按键扫描思路 笔记

博客围绕嵌入式按键扫描展开,介绍了按键的两种模式:支持连按和不支持连按。还提及C语言中static声明的静态变量具有记忆功能。详细阐述了两种模式的实现思路,并给出将两种模式合二为一的代码示例,通过mode参数控制按键模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按键有两种模式

①支持连按(例如电视调台长按持续换台)

②不支持连按

 

C语言小知识

C语言关键字 static声明的静态变量存储在静态存储区。

它在函数调用结束之后,不会被释放。它的值会一直保留下来。所以可以说static申明的局部变量,具有记忆功能。

Q:每次调用getValue函数之后,返回值是多少?

int getValue(void)

{

  int  flag=0;

  flag++;

  return flag;

}
int getValue(void)

{

  static int  flag=0;

  flag++;

  return flag;

}

 

解释

前者每次调用getValue函数,flag都会被重新置0(每次调用函数,flag都=0);而后者第一次调用了getValue函数,flag被正常置0,当第二次调用此函数时,flag则不会被重新赋值,而是等于上一次调用的返回值。(第二次调用函数,flag=1,第三次调用,flag=2...)

 

接下来可以写不同模式的按键函数啦

①支持连按的一般思路

 u8 KEY_Scan(void)

    {

      if(KEY按下)

     {

           delay_ms(10);//延时1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值