stm32-7SysTicks

本文详细介绍了STM32中系统定时器SysTick的配置,包括如何设置中断时间间隔以及如何利用SysTick实现精确延时。通过解析核心库文件`core_cm3.h`中的寄存器位指示宏和位屏蔽宏,阐述了SysTick_CTRL_CLKSOURCE_Msk等宏的作用。此外,还提到了中断服务函数`SysTick_Handler()`和延时函数`TimingDelay_Decrement()`的使用,强调了跨文件函数调用时extern声明的重要性。
摘要由CSDN通过智能技术生成

stm32-7SysTicks


1.系统定时器的相关配置

首先跟踪一部分代码,下面为初始化滴答定时器的函数

    /* 配置SysTick为10ms中断一次*/
    SysTick_Init();

跟踪到bsp_SysTicks.c文件中对他的定义

/**
  * @brief  配置滴答定时器
  * @param  
  * @retval 
  * @attention:配置中断的时间间隔,配置成功后关闭定时器
  */
void SysTick_Init(void)
{
    /* 配置中断时间间隔
     * SystemFrequency / 1000    1ms中断一次
     * SystemFrequency / 100000  10us中断一次
     * SystemFrequency / 1000000 1us中断一次
     */
//  if (SysTick_Config(SystemFrequency / 100000))   // ST3.0.0库版本
    if (SysTick_Config(SystemCoreClock / 100000))   // ST3.5.0库版本
    { 
        /* Capture error */ 
        while (1);
    }
        // 关闭嘀嗒定时器  
    SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;
}

其中,函数SysTick_Config(SystemCoreClock / 100000) 配置中断时间间隔,配置失败返回1,跟踪到 core_cm3.h中:

/* #####################    SysTick function  ######################## */

#if (!defined (__Vendor_SysTickConfig)) || (__Vendor_SysTickConfig == 0)

/**
 * @b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值