当前位置: 首页 > wzjs >正文

南阳网站制作公司宁波seo专员

南阳网站制作公司,宁波seo专员,网站建设与维护典型案例,效果建网站的公按键模块主要是注意短按、长按; 引脚状况 使用PA0、PB0、 PB1、PB2四个引脚;根据电路图可知:按下端口接地,所以我们要将端口设置成为上拉模式,只要按下即低电平; STM32CubeMX 端口配置 配置定时器TIM6 因为…

按键模块主要是注意短按、长按;

引脚状况

使用PA0、PB0、 PB1、PB2四个引脚;根据电路图可知:按下端口接地,所以我们要将端口设置成为上拉模式,只要按下即低电平;

STM32CubeMX

端口配置

 配置定时器TIM6

因为单纯计数我便使用最基础的定时器

 

 使能

代码部分

按键扫描有多种方法,我只用一种定时器扫描,在精不在多; 

记住回调函数在哪找,就不用背它;

头文件

#ifndef  _INTERRUPT_H_
#define  _INTERRUPT_H_
#include "stm32g4xx_hal.h"
#include "stdbool.h"
#include "stdint.h"
#include "main.h"struct key
{bool key_status;//按键状态uint8_t counts;//按键计数bool shortsign;//短按uint8_t key_time;//按键时长bool longsign;//长按
};
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);
#endif

 c文件部分

#include "interrupt.h"
#include "led.h"
#include "stdbool.h"struct key key1[4]={0,0,0,0,0};void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{if(htim->Instance == TIM6){key1[0].key_status = HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0);key1[1].key_status = HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1);key1[2].key_status = HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2);key1[3].key_status = HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0);for(uint8_t i=0;i<4;i++){switch(key1[i].counts){case 0:{if(key1[i].key_status == 0)key1[i].counts =1;}break;case 1:   使用case1消抖{if(key1[i].key_status ==0){key1[i].counts =2;key1[i].key_time =0;}else key1[i].counts =0;}break;case 2:   {if(key1[i].key_status== 0){key1[i].key_time++;}if(key1[i].key_status== 1){key1[i].shortsign=1;key1[i].counts =0;}if(key1[i].key_status== 1 && key1[i].key_time > 70){key1[i].longsign=1;key1[i].counts =0;}}break;}}}}

main文件


#include "interrupt.h"
extern struct key key1[];
int main(void)
{HAL_TIM_Base_Start_IT(&htim6);
while (1){ HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);char text[30];sprintf(text,"   no dwon");LCD_DisplayStringLine(Line4,(uint8_t *)text);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */if(key1[0].shortsign==1){sprintf(text,"   0  dwon");LCD_DisplayStringLine(Line5 ,(uint8_t *)text);key1[0].shortsign = 0;}if(key1[0].longsign ==1){sprintf(text,"   1  dwon");LCD_DisplayStringLine(Line5 ,(uint8_t *)text);key1[0].longsign = 0;}}
}

http://www.dtcms.com/wzjs/792558.html

相关文章:

  • 闵行网站推广台州seo网站推广费用
  • 搭建flv视频网站咨询网络服务商
  • 网站到期查询wordpress商品展示模板下载
  • 好的 做网站的软件公司苏州app开发定制
  • 大连模板网站制作推荐深圳品牌创意网站建设
  • 网站建设的网络公司wordpress淘口令插件
  • 网站群集建设建网站公司 优帮云
  • 网站建设通有的网站网速慢
  • 微信视频网站怎么做的好浙江省建设厅网站地址
  • 盐城企业做网站多少钱星链友店
  • 做包装设计的网站有哪些网页版梦幻西游36天罡攻略
  • 用爱奇艺会员做视频网站违法吗wordpress网站速度检测
  • 哪里查网站备案信息远象建设 网站
  • 遵义网站建设哪家强淘宝美工与网站开发
  • 泉州建设网站公司哪家好药店网站源码
  • 关于做网站的ppt温州网站制作价格
  • 快手秒赞秒评网站推广微信怎么做推广
  • phpstudy怎么做网站购买域名之后怎么做网站
  • 深圳 做公司网站东莞seo托管
  • mysql 网站开发 问好网站建设承诺
  • 长春网站建设手机版网站导入链接
  • 网站与网络的区别网站在建设中模板
  • 网站自己怎么制作郑州艾特网站建设
  • 免费h5模板网站模板网站快慢由什么决定
  • 自己网站做第三方支付临沂市建设官方网站
  • 网站建设自查自评xml网站地图生成器
  • 榆林做网站获客平台有哪些
  • 深圳网站建设电话济南网站建设加q479185700
  • 网站建设的要点是什么建筑网建设通
  • 门窗设计软件免费版论坛与网站做优化哪个更好