• 大小: 8.28MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-05
  • 语言: 其他
  • 标签: 长短按  

资源简介

STM32按键长短按_完整工程_最多支持12个按键_回调函数处理机制

资源截图

代码片段和文件信息



#include “Hal_delay/delay.h“

static uint8_t  facUs=0; //us延时倍乘数
static uint16_t facMs=0; //ms延时倍乘数
/**
* @brief  滴答定时器初始化:选择时钟源,确定微秒延时和毫秒延时的计数次数
* @param  SYSCLK,系统时钟,举例:传入72则表示系统时钟是72MHZ
* @return none
*/
void delayInit(uint8_t SYSCLK)
{
    SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //选择外部时钟HCLK/8
    facUs=SYSCLK/8; //硬件分频fac_us得出的值要给下面的时钟函数使用
    facMs =(u16)facUs*1000;
}
/**
* @brief  延时us
* @param  nus:延时多少us
* @return none
*/
void delayUs(uint32_t nus)
{
    uint32_t temp;  
    SysTick->LOAD = nus*facUs;  //延时10us10*9 = 90装到load寄存器中
    SysTick->VAL=0x00;//计数器清0
    SysTick->CTRL = 0x01;//配置异常生效也就是计数器倒数到0时发出异常通知
    do  
    {  
         temp = SysTick->CTRL;//时间到该位将被硬件置1但被查询后自动清0
    }  
    while(temp & 0x01 && !(temp &(1<<16)));//查询
    SysTick->CTRL = 0x00;//关闭定时器
    SysTick->VAL = 0x00;//清空val清空定时器
}

/**
* @brief  延时x毫秒,x需要小于1864.135毫秒
* @param  nms:延时多少毫秒
* @return none
*/
void delayXMs(uint16_t nms)
{
    uint32_t temp;  
    SysTick->LOAD = nms*facMs;//延时10ms10*9 = 90装到load寄存器中
    SysTick->VAL=0x00;//计数器清0
    SysTick->CTRL = 0x01;//配置异常生效也就是计数器倒数到0时发出异常通知
    do  
    {  
         temp = SysTick->CTRL;//时间到该位将被硬件置1但被查询后自动清0
    }  
    while(temp & 0x01 && !(temp &(1<<16)));//查询

    SysTick->CTRL = 0x00;//关闭定时器
    SysTick->VAL = 0x00;//清空val清空定时器
}
/**
* @brief  延时x毫秒,可任意延时,延时采用分份延时
* @param  nms:延时多少毫秒
* @return none
*/
void delayMs(uint16_t nms)
{    
  u8 repeat=nms/500; //500ms为1份,求商,求出要延时多少份500ms
  u16 remain=nms%500;   //取余数,求出不足500ms的毫秒延时是多少
  while(repeat)         //判断是否不为0,如果不为0,则条件成立
  {
    delayXMs(500);      //延时500ms
    repeat--;           //份数减1
  }
  if(remain)            //不足500ms
    delayXMs(remain);   //单独延时




 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-12-27 13:51  按键长短按实验\
     目录           0  2017-12-27 14:14  按键长短按实验\Hal\
     目录           0  2017-12-27 14:15  按键长短按实验\Hal\Hal_Led\
     文件        2878  2017-12-27 14:15  按键长短按实验\Hal\Hal_Led\Hal_Led.c
     文件         248  2017-12-13 15:49  按键长短按实验\Hal\Hal_Led\Hal_Led.h
     目录           0  2017-12-27 14:15  按键长短按实验\Hal\Hal_delay\
     文件        2476  2017-12-27 14:15  按键长短按实验\Hal\Hal_delay\delay.c
     文件         174  2017-11-20 14:56  按键长短按实验\Hal\Hal_delay\delay.h
     目录           0  2017-12-27 14:15  按键长短按实验\Hal\Hal_key\
     文件        9748  2017-12-27 14:15  按键长短按实验\Hal\Hal_key\hal_key.c
     文件        1895  2017-12-27 14:15  按键长短按实验\Hal\Hal_key\hal_key.h
     目录           0  2017-12-27 13:51  按键长短按实验\Lib\
     目录           0  2017-12-27 13:51  按键长短按实验\Lib\CMSIS\
     目录           0  2017-12-27 13:51  按键长短按实验\Lib\CMSIS\CM3\
     目录           0  2017-12-27 13:51  按键长短按实验\Lib\CMSIS\CM3\CoreSupport\
     文件       16489  2017-09-21 11:23  按键长短按实验\Lib\CMSIS\CM3\CoreSupport\core_cm3.c
     文件       83896  2017-09-21 11:23  按键长短按实验\Lib\CMSIS\CM3\CoreSupport\core_cm3.h
     目录           0  2017-12-27 13:51  按键长短按实验\Lib\CMSIS\CM3\DeviceSupport\
     目录           0  2017-12-27 13:51  按键长短按实验\Lib\CMSIS\CM3\DeviceSupport\ST\
     目录           0  2017-12-27 13:51  按键长短按实验\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\
     文件       26014  2017-09-21 11:23  按键长短按实验\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\Release_Notes.html
     目录           0  2017-12-27 13:51  按键长短按实验\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\
     目录           0  2017-12-27 13:51  按键长短按实验\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\TrueSTUDIO\
     文件       12131  2017-09-21 11:23  按键长短按实验\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\TrueSTUDIO\startup_stm32f10x_cl.s
     文件       12123  2017-09-21 11:23  按键长短按实验\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\TrueSTUDIO\startup_stm32f10x_hd.s
     文件       11788  2017-09-21 11:23  按键长短按实验\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\TrueSTUDIO\startup_stm32f10x_hd_vl.s
     文件        9479  2017-09-21 11:23  按键长短按实验\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\TrueSTUDIO\startup_stm32f10x_ld.s
     文件        9883  2017-09-21 11:23  按键长短按实验\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\TrueSTUDIO\startup_stm32f10x_ld_vl.s
     文件        9912  2017-09-21 11:23  按键长短按实验\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\TrueSTUDIO\startup_stm32f10x_md.s
     文件       10349  2017-09-21 11:23  按键长短按实验\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\TrueSTUDIO\startup_stm32f10x_md_vl.s
     文件       12785  2017-09-21 11:23  按键长短按实验\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\TrueSTUDIO\startup_stm32f10x_xl.s
............此处省略249个文件信息

评论

共有 条评论

相关资源