文件名称:STM32单片机实现短按长按操作(按键状态机)
文件大小:182KB
文件格式:7Z
更新时间:2022-03-26 18:57:39
按键状态机 单片机 长按短按 STM32
个人博客:CSDN “老子姓李!” 参考教程链接:https://blog.csdn.net/qq_44078824/article/details/123753825 引言: 在日常生活中,有不少按键长按、短按的应用实例。比如:一个台灯,短按切换亮度,长按关机。 问题来了,单片机是如何区分按键的短按和长按的呢? 本程序使用定时器,运用状态机的思想,实现了单按键的单击长按操作。 代码简洁规范,可读性强,移植性强。 实验器材: 自制开发板,STM32F03C8T6平台 实验目的: 学习定时器中断、按键使用。实现单击长按操作 硬件资源: 按键(PA0,也称之为WK_UP) 定时器3 串口1,用于打印输出 实验现象: 按时间小于1s后释放,触发单击事件,串口打印"单击" 按时间大于1s后释放,触发长按事件,串口打印"长按" 本程序只供学习使用,未经作者许可,不得用于其它任何用途 感谢大家的阅读与下载,码字开源分享不易,麻烦给个免费的赞。 如果有帮助的,请不要吝啬三连。点赞评论收藏,让更多人看到有用的内容。 本博客作抛砖引玉,欢迎大家评论交流。
【文件预览】:
README.TXT
keilkilll.bat
STM32F10x_FWLib
----inc()
--------stm32f10x_spi.h(17KB)
--------stm32f10x_crc.h(2KB)
--------stm32f10x_tim.h(51KB)
--------stm32f10x_usart.h(16KB)
--------stm32f10x_dma.h(20KB)
--------stm32f10x_fsmc.h(26KB)
--------stm32f10x_i2c.h(29KB)
--------stm32f10x_dac.h(15KB)
--------stm32f10x_iwdg.h(4KB)
--------misc.h(9KB)
--------stm32f10x_bkp.h(7KB)
--------stm32f10x_pwr.h(4KB)
--------stm32f10x_dbgmcu.h(4KB)
--------stm32f10x_exti.h(7KB)
--------stm32f10x_can.h(27KB)
--------stm32f10x_adc.h(21KB)
--------stm32f10x_cec.h(6KB)
--------stm32f10x_rcc.h(30KB)
--------stm32f10x_rtc.h(4KB)
--------stm32f10x_flash.h(25KB)
--------stm32f10x_sdio.h(21KB)
--------stm32f10x_wwdg.h(3KB)
--------stm32f10x_gpio.h(20KB)
----src()
--------stm32f10x_adc.c(46KB)
--------stm32f10x_fsmc.c(35KB)
--------misc.c(7KB)
--------stm32f10x_flash.c(61KB)
--------stm32f10x_rcc.c(50KB)
--------stm32f10x_wwdg.c(6KB)
--------stm32f10x_tim.c(107KB)
--------stm32f10x_iwdg.c(5KB)
--------stm32f10x_gpio.c(23KB)
--------stm32f10x_dbgmcu.c(5KB)
--------stm32f10x_pwr.c(9KB)
--------stm32f10x_crc.c(3KB)
--------stm32f10x_dac.c(19KB)
--------stm32f10x_sdio.c(28KB)
--------stm32f10x_can.c(44KB)
--------stm32f10x_bkp.c(8KB)
--------stm32f10x_cec.c(11KB)
--------stm32f10x_rtc.c(8KB)
--------stm32f10x_usart.c(37KB)
--------stm32f10x_i2c.c(45KB)
--------stm32f10x_spi.c(30KB)
--------stm32f10x_exti.c(7KB)
--------stm32f10x_dma.c(29KB)
SYSTEM
----usart()
--------usart.c(4KB)
--------usart.h(1KB)
----delay()
--------delay.c(8KB)
--------delay.h(2KB)
----sys()
--------sys.c(876B)
--------sys.h(3KB)
CORE
----core_cm3.c(17KB)
----core_cm3.h(84KB)
----startup_stm32f10x_hd.s(15KB)
----startup_stm32f10x_md.s(12KB)
OBJ
----LED.hex(11KB)
USER
----system_stm32f10x.h(2KB)
----stm32f10x.h(619KB)
----main.c(1KB)
----JLinkSettings.ini(671B)
----stm32f10x_it.c(2KB)
----LED.uvguix.nanshou(85KB)
----Objects()
----stm32f10x_conf.h(3KB)
----LED.uvoptx(13KB)
----LED.uvguix.Administrator(68KB)
----LED.uvprojx(17KB)
----system_stm32f10x.c(36KB)
----stm32f10x_it.h(2KB)
----Listings()
----DebugConfig()
--------LED_STM32F103C8_1.0.0.dbgconf(7KB)
--------LED_STM32F103ZE_1.0.0.dbgconf(7KB)
--------LED_STM32F103ZE.dbgconf(7KB)
--------LED_STM32F103C8.dbgconf(7KB)
HARDWARE
----KEY()
--------key.h(1KB)
--------key.c(5KB)
----TIMER()
--------timer.c(2KB)
--------timer.h(585B)