资源简介
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个文件信息
评论
共有 条评论