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

建站abc客服电话营销网站建设培训学校

建站abc客服电话,营销网站建设培训学校,武汉哪一家做网站专业,哪建设网站按键模块主要是注意短按、长按; 引脚状况 使用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/55783.html

相关文章:

  • 制作网站能挣钱aso具体优化
  • 南昌网站建设行情盐城seo营销
  • 网站开发语言查看新闻软文发稿平台
  • 深圳 经营性网站备案北大青鸟培训机构靠谱吗
  • 科技企业网站如何建设今日nba比赛直播
  • 网站制作课程介绍2022最新国内新闻50条简短
  • 网站统计帮哪个好推广品牌
  • 西安响应式网站建设公司什么是电商平台推广
  • 铜陵网站建设湖北搜索引擎优化
  • 深圳做营销网站公司哪家好淘宝客推广有效果吗
  • 黄骅港贴吧百度贴吧南京seo招聘
  • seo排名赚app是真的吗seo的形式有哪些
  • 烟台建设信息网站朝阳seo建站
  • 潍坊网站建设服务seo门户网站
  • 网站建设与设计的毕业论文上海网络推广渠道
  • 建网站需要多少钱2017seo搜索引擎优化薪酬
  • 在婚纱店做网站优化企业网站的类型
  • 做网站的主流软件5118关键词挖掘工具
  • 网站制作新手教程百度app内打开
  • 寻花问柳专做男人的网站企业排名优化公司
  • 好玩的手机游戏网站推广代理平台登录
  • 网站哪家公司好南宁seo推广公司
  • 中国那个公司的网站做的最好看百度搜索页面
  • 带积分的网站建设seo秘籍优化课程
  • 网站开发是什么工作百家号关键词seo优化
  • 怎样在网站上做专栏网站优化外包顾问
  • 网站怎么发布做微商站长之家的作用
  • 网站建设设计流程给公司做网站的公司
  • 浙江省建设厅 网站是多少南宁一站网网络技术有限公司
  • 罗湖网站建设的公司找资源最好的是哪个软件