当前位置:   article > 正文

蓝桥杯嵌入式(G431)备赛笔记——按键模块设计

蓝桥杯嵌入式(G431)备赛笔记——按键模块设计

目录

cubeMX配置:

代码模板:

最终模板

注意:


cubeMX配置:

原理图

引脚配置为上拉模式

定时器

使用定时器3(通用定时器,使用外部晶振,内部时钟),分频系数为80(从0开始则为80-1),则每1s 1m次,定时评率为为10000,对应1s 1m/10000次,频率为10ms每次

一定记得开启NVIC使能中断

编写中断回调函数

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

代码模板:

思路:

单个单机按键带长按键判断—>单个单机按键加双击按键,同时修复长按键误触发短按键功能bug—>4个单机按键加双击按键,同时优化代码,修改bug

开始之前:重整了工程结构
删除common.c/.h
在main.h中加入
#define uint unsigned int
#define uchar unsigned char
在main.c中引用自定义库:
#include "led.h"
在自定义库的.h改引用main.h,代替common.h

  1. Interrupt.c:
  2. #include "interrupt.h" // 引入头文件 interrupt.h
  3. uchar judge_state=0,key_num=100,key_time=0; // 定义全局变量 judge_state 表示按键状态,key_num 表示按键编号,key_time 表示按键按下的时间
  4. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) // 定义定时器中断回调函数
  5. {
  6. if(htim->Instance==TIM3) // 判断是否是定时器3的事件
  7. {
  8. switch (judg
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/400105
推荐阅读
相关标签
  

闽ICP备14008679号