历史上的今天
返回首页

历史上的今天

今天是:2024年12月11日(星期三)

正在发生

2018年12月11日 | 利用STM32的Systick中断实现按键消抖

2018-12-11 来源:eefocus

在系统初始化的时候对systick进行初始化


 void SysTickConfig(void)

{

  /* Set SysTick Timer for 100us interrupts  */

  if (SysTick_Config(SystemCoreClock / 10000))

  {

    /* Capture error */

    while (1);

  }

  /* Configure the SysTick handler priority */

  NVIC_SetPriority(SysTick_IRQn, 0x0);

}

在stm32f4xx_it.c中加入

void SysTick_Handler(void)

{

Key_Scan();

}


在按键初始化中加入按键扫描函数


void Key_Scan(void)

{                        

         /*检测是否有按键按下 */

         if( (GPIOG->IDR&(1UL<<5))!=(1UL<<5) )

         {         

                 kcount++;                         //有键按下,计数kcount加1

                 if(kcount>=32)                    //1MS中断一次,kcount大于等于32,即按键已按下32ms

                 {

                         if(label==0)                //判断有没有重按键,1为有,0为没有

                        {

                        keys1=1;                       //设置按键标志

                        kcount=0;        

                        label=1;                     //设置重按键标志

                        }

                        else

                        kcount=0;

                 }      

                 else

                         keys1=0;

         }

         else                                            //无按键按下

         {

                 kcount=0;                      //清零kcount

                 keys1=0;                            //清除按键标志

                 label=0;                          //清除重按键标志

         }               

}

按键IO口初始化 PA0 PG4 PG5 三个IO口

void KeyInit(void)

{

  /* Enable clock and init GPIO inputs */

  RCC->AHB1ENR |= (1UL << 0) |

                  (1UL << 6) ;

 

  GPIOA->MODER &= ~(3UL << 2* 0);

  GPIOG->MODER &= ~(3UL << 2* 4);

  GPIOG->MODER &= ~(3UL << 2* 5);

}

UL是指32位无符号整形数据  ,因此GPIOG->MODER &= ~(3UL << 2* 0);是指让PG5口作为输入;

uint8_t kcount;

uint8_t label;

extern uint8_t keys1;


最后忘了要定义这几个变量,否则编译通不过。

推荐阅读

史海拾趣

Data Delay Devices公司的发展小趣事

随着公司实力的不断增强,DDD公司开始积极拓展市场。公司针对不同领域的需求,推出了多种定制化产品,满足了客户的多样化需求。同时,DDD公司还积极参与国内外展览和交流活动,加强与同行的合作与交流,提高了公司的知名度和影响力。这些市场拓展策略的实施,为DDD公司的快速发展奠定了坚实基础。

极海半导体(Geehy)公司的发展小趣事

在DDD公司的发展历程中,技术创新一直是其核心竞争力。公司不断投入研发资金,引进高端人才,推动产品升级换代。特别是在模拟和数字延迟线技术方面,DDD公司取得了多项重要突破。这些技术创新不仅提高了产品的性能和质量,也为公司赢得了更多客户的信任和认可。

CINTERION公司的发展小趣事

CINTERION的前身可追溯到西门子于1995年创建的无线模块业务。在成立之初,该公司便专注于工业用机器对机器(M2M)无线通信模块的研发与生产。随着技术的不断进步,CINTERION逐渐在行业内崭露头角,其产品在智能电网、汽车、公用事业等领域得到了广泛应用。1996年,CINTERION成功推出了全球第一款蜂窝模组,这一创新为公司在无线通信模组市场打下了坚实的基础。

硕颉(BITEK)公司的发展小趣事

硕颉科技不断推出创新产品,主打系列包括逆变器、LED驱动器、线性稳压器、AC/DC驱动器、MOSFET、视频编码器和解码器以及图像处理器等。这些产品广泛应用于消费电子领域,满足了市场对高质量电子产品的需求。同时,公司积极拓展销售网络,以台湾、韩国、中国大陆和日本等地区为主,逐步向全球市场扩张。

芯力微(CHI Power)公司的发展小趣事

面对日益激烈的市场竞争,芯力微不断推动创新,以应对市场的变化。在电源管理领域,公司不断研发新技术、新产品,以满足客户日益增长的需求。同时,芯力微还积极拓展新的应用领域,如物联网、汽车电子等,为公司的发展开辟了新的道路。这种持续的创新精神使得芯力微在电子行业中始终保持领先地位。

CANDD公司的发展小趣事

随着全球环保意识的提高,CANDD公司积极响应号召,开始践行绿色环保理念。公司投入大量资金研发环保型电子产品,并采用了更加环保的生产工艺和材料。同时,公司还加强了废弃电子产品的回收和处理工作,努力减少对环境的污染。这些举措不仅提升了公司的社会形象,还为公司赢得了更多消费者的支持。

问答坊 | AI 解惑

我的DSP之路-关于中段向量的一些心得与问题

中断向量表的编写 .ref _bad_trap  ; 这个标号外部没有定义,为什么还用.ref,而不是用..global? .ref _c_int0 ; entry point to the code .sect "vectors" ;自定义 ...…

查看全部问答>

关于谐振电路的品质因素(Q值)

许多电子初学者对于谐振电路的品质因素(Q值)理解的不是很透彻,近日在网上发现这篇文章,讲得比较详细.   在研究各种谐振电路时,常常涉及到电路的品质因素Q值的问题,那末什么是Q值呢?下面我们作详细的论述。   图1是一串 ...…

查看全部问答>

今天是5月最后一天,新的6月即将来临

希望各位工控坛友,多提问题,多回答问题,我们一起成长!…

查看全部问答>

定制的ce5,如何掉中文的哪个小面板

ce5中调用软输入面板双拼,但是输入中文时,软面板显示,同时中文小面板也显示,如何去掉这个小面板呢, 谢谢,在线…

查看全部问答>

人才,你在哪儿??

昔日,未行桃李之事,今遇一通达之事,却无良才平复此役,苦求未果!心中不甚纷扰,叹,吾,何以解?唉!唉!.......…

查看全部问答>

WinCe Wifi配置

大家好, 关于wifi的配置, 下面黑体部分: g_dwOutput & INTF_BSSID == 0????为什么啊?望高人指教! 部分打印信息: In flags used       = [0x7fffffff] dwOutput 打印信息   =  [0x000fffff] ...…

查看全部问答>

CCeCommandBar的工具条的问题

CCeCommandBar的工具条怎么设置才能够使得按钮可以有下压的状态,以表示当前正在进行某项操作。 谢谢…

查看全部问答>

RTX嵌入在Lotus的问题

在Lotus代理中的Initialize中这样写道Dim objRTXCApi As RTXClient.RTXAPI 但objRTXApi出错,定义不了objRTXCApi,在VB中只要添加应用就可以了,请问在Lotus该怎样声明objRTXApi?请高人帮忙解决!谢谢…

查看全部问答>

主题:庭审Sitara, 你是怎样启动的?

TI的Sitara系列ARM器件提供了丰富多彩的启动模式, 可以说东邪西毒南帝北丐,你能想到的启动方式, 它基本上都有了.那么就让我们拷问一下Sitara, 究竟你是怎么实现这么多的启动的? 手段合不合** 是否损害了最广大的人民群众的根本利益?Sitara:尊敬的各 ...…

查看全部问答>

远程水位监测系统

关键词:远程水位监测系统、河道水位监测系统、水库水位监测系统、远程水位监控系统、地下水位监测系统 一 概述 济南惠驰电子科技有限公司基于移动通讯网络开发的水位远程监测系统,支持用户通过手机即可远程无线查看高位水池、水塔的具体水位值 ...…

查看全部问答>