ZHCUAN6E October 2022 – May 2025 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
系统时钟周期计时器 (SysTick) 是由 MCLK 提供时钟的紧密耦合计时器,可用于系统计时。SysTick 可用于 RUN 和 SLEEP 模式,但不可用于 STOP、STANDBY 和 SHUTDOWN 模式。
可通过系统专用外设总线 (PPB) 区域中的存储器映射寄存器配置 SysTick。请参阅表 3-7 中的 SysTick 配置寄存器列表。随器件提供的软件开发套件 (SDK) 对于 SysTick 支持标准 Arm Cortex 微控制器软件接口标准 (CMSIS) 寄存器访问定义。
SysTick 计时器有多种不同的使用方式,包括:
SysTick 计时器是一种简单的 24 位向下计数器,从重载值开始递减至零。达到零后,SysTick 将在下一个时钟周期重新加载编程到重载值寄存器 (SYST_RVR) 中的值,然后再次开始递减至零。
当 SysTick 计数器达到零时会生成 SysTick 事件,此时将设置 COUNTFLAG 状态标志。读取 SYST_CSR 寄存器将清除 COUNTFLAG 状态位。写入到当前值寄存器 (SYST_CVR) 会清除该寄存器和 COUNTFLAG 状态,但不会对 CPU 产生中断。读取 SYST_CVR 会返回访问时的计数器值。
| 地址 | 寄存器 | CMSIS | 说明 |
|---|---|---|---|
| 0xE000.E010 | SYST_CSR | SysTick->CTRL | 控制和状态寄存器,用于启用/禁用 SysTick 及其相关异常,以及检查 COUNTFLAG 状态 |
| 0xE000.E014 | SYST_RVR | SysTick->LOAD | 重载寄存器,用于对计数器重载值进行编程以设置 MCLK 周期中的 SysTick 间隔 |
| 0xE000.E018 | SYST_CVR | SysTick->VAL | 返回 SysTick 计数器的当前值;写入到该寄存器会将计数器清零并清除 SYST_CSR 中的 COUNTFLAG |
| 0xE000.E01C | SYST_CALIB | SysTick->CALIB | 未执行 |
应用软件只能使用 32 位字对齐的字访问方式访问 SysTick 寄存器。要初始化 SysTick,请按照以下步骤操作: