SysTick定时器(系统滴答定时器)

SysTick定时器(系统滴答定时器)

  • 24位倒数计时器
  • 当倒数到0时产生中断(如果使能SysTick异常请求)
  • 可编程的时钟源选择(2个)

SysTick时钟源选择

STCLK:外部时钟源(HCLK的8分频)
FCLK:内核时钟(HCLK时钟)

时钟源选择可在SysTick控制和状态寄存器中进行配置

SysTick寄存器

STK_CTRL:控制状态寄存器(Reset Value:0x00000000)
STK_LOAD:重装载数值寄存器(位段:23-0)(Reset Value:Unknown)
STK_VAL:当前数值寄存器(位段:23-0)(Reset Value:Unknown)
STK_CALIB:校准数值寄存器(Reset Value:0xC0000000)

SysTick相关函数

// SysTick时钟源选择函数。在misc.c文件中
void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)

// 初始化SysTick,默认时钟为HCLK,并开启中断。在core_cm3.h或core_cm4.h文件中
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)

// SysTick中断服务函数
void SysTick_Handle(void)

使用说明

  1. SysTick运行于处理器时钟,如果该时钟信号在低功耗模式下停止,则SysTick计数器停止
  2. 由于STK_LOAD和STK_VAL数值不确定,所以正确初始化顺序为:
    a)软件设置STK_LOAD的值
    b)清空STK_VAL的值
    c)设置控制状态寄存器(包括使能定时器)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值