delay函数代码

 delay.c代码如下

#include "./delay/delay.h"
/**
 * 功能:SysTick定时器初始化函数
 * 参数:None
 * 返回值:None
 */
void initSysTick(void)
{
    SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //设置时钟源8分频
    SysTick->CTRL |= SysTick_CTRL_TICKINT_Msk;            //使能中断
    SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;             //开定时器
    SysTick->LOAD = 9;                                    //随意设置一个重装载值
}
/**
 * 功能:微秒级延时函数
 * 参数:xus :具体延时时间  (单位:微秒)
 * 返回值:None
 */
void delay_us(u32 xus)
{
    SysTick->LOAD = 9 * xus;                               //计9次为1us,xus则重装载值要*9
    SysTick->VAL = 0;                                      //计数器归零
    while (!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk)); //等待计数完成
}
/**
 * 功能:毫秒级延时函数
 * 参数:xms :具体延时时间  (单位:毫秒)
 * 返回值:None
 */
void delay_ms(u32 xms)
{
    SysTick->LOAD = 9000;                                      //计9次为1us,1000次为1ms
    SysTick->VAL = 0;                                          //计数器归零
    while (xms--)
    {
        while (!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk)); //等待单次计数完成
    }
}

delay.h代码如下 

#include "stm32f10x.h"

void initSysTick(void);
void delay_us(u32 xus);
void delay_ms(u32 xms);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

printf("风向决定发型");

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值