关于CH32F系列以及CH32V系列 SysTick的使用

发布时间 2023-08-09 11:11:23作者: ZaiLi

1、关于SysTick

CH32F103/203:

CH32F103 /203 SysTick和STM32F103一样为Cortex-M3内核,是一个24位的向下递减计数器,计数器每计数一次的时间为1/SYSCLK(系统主频)。当SysTick重装载数寄存器的值递减到0的时候,产生一次中断。

CH32F系列MCU SysTick由4个寄存器控制,具体如下图。具体介绍可参考《CM3权威指南》

CH32V10x_20x_30x:

CH32V系列MCU内核为RISC-V内核,其SysTick为一个64位计数器。与Cortex-M3内核MCU不同,其SysTick可配置为向上计数或向下计数。此外还有一个64位的比较寄存器,当计数器值和比较寄存器值相同时将触发中断服务。

CH32V10x系列MCU SysTick由5个寄存器控制,如下图。具体介绍可参考CH32xRM手册。

https://www.wch.cn/downloads/CH32xRM_PDF.html

CH32V20_30x系列MCU SysTick由6个寄存器控制,如下图。具体介绍可参考CH32FV2x_V3xRM手册。

https://www.wch.cn/downloads/CH32FV2x_V3xRM_PDF.html

 

2、关于SysTick时基

  • CH32F10x_20x系列MCU可以配置HCLK或HCLK/8作为时基
  • CH32V103系列MCU只能配置HCLK/8作为时基
  • CH32V20x_30x系列MCU可以配置HCLK或HCLK/8作为时基

 

3、关于SysTick配置

在对SysTick进行初始化配置的时候,需要先对计数模式(即位4)进行配置,再配置计数器初始值更新(位5)和系统计数器使能控制位(位0),否则第一次延时函数可能不生效。

程序配置方式如下:

 

4、关于STK_CTLR寄存器位31(SWIE)的作用及用法

作用:用于触发软件中断,具体用法见下图