<6>STM32滴答定时器延时函数程序简版-库函数

STM32F103滴答定时器延时函数程序简版-库函数

分享一个STM32简约版本的滴答定时器简单延时函数,此程序用到了中断
下面是完整的源代码

delay.h

#ifndef _DELAY_H
#define _DELAY_H

#include "stm32f10x.h"

void Delay_Init(void);    //延时函数初始化
void delay_us(uint32_t Systick_us);   //毫秒延时函数的声明
void delay_ms(uint32_t Systick_ms);   //微秒延时函数的声明

#endif

delay.c

#include "delay.h"

uint32_t Systick_cnt = 0;//定义变量

void Delay_Init(void)
{
   //时钟频率为72MHz,也就是1秒计数72000000次,1微妙计数72次
   //SysTick_Config函数是系统自带的,在core_cm3.h的1694行。SystemCoreClock为72MHz.
   SysTick_Config(SystemCoreClock/1000000);//滴答定时器定时时间设置 1us
}

void SysTick_Handler(void)//滴答定时器的中断服务函数
{
	if(Systick_cnt)//如果变量值大于0时,变量自减
		Systick_cnt--;
}
void delay_us(uint32_t Systick_us)
{
	Systick_cnt = Systick_us;//给计数变量赋值
	while(Systick_cnt);//循环等待,直到计数变量的值减成0,值减运算在SysTick_Handler中在执行
}

void delay_ms(uint32_t Systick_ms)
{
	Systick_cnt = Systick_ms*1000;//给计数变量赋值,毫秒级需要*1000
	while(Systick_cnt);//循环等待,直到计数变量的值减成0
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值