SysTick 是一个 24bit 的系统计时器,计数器从 LOAD寄存器 中读取数值(该数值最大为24bit),不断递减,递减为 0 时相应标志位置 1,产生一个中断请求;
该寄存器通常用来产生精确的 延时(Delay)函数;
SysTick寄存器

SysTick寄存器映射——STM32F10xxx Cortex-M3编程手册
端口配置低寄存器 --- CTRL(Control and status register):使能SysTick和相应中断请求,并配置时钟来源;
作用---使能计数器(counter):位0 置 1 时计数器使能,置 0 时计数器关闭;
作用---使能中断请求:位1 置 1 时中断请求使能,置 0 时中断请求关闭(SysTick中断为中断向量表 系统中断第16项);

SysTick中断
作用---选择时钟源:位2 置 1 时选择 AHB 时钟作为源,置 0 时选择 AHB / 8 作为时钟源;(默认情况下AHBCLK = 72M)
位16 为标志位 COUNTFLAG,为 1 时表明计数器的值为 0;
复位值:0x0000 0000
读取值寄存器 --- LOAD(reload value register):位23:0 储存计数器要读取的值;
复位值:0x0000 0000
当前值寄存器 --- VAL(current value register):位23:0 储存计数器当前的值;
复位值:0x0000 0000
校准值寄存器 --- CALIB(calibration value register):位23:0 储存计数器校准值和相应标志位的寄存器;
复位值:0x0002328
常用SysTick固件库函数 (core_cm3.h)
SysTick配置函数 --- SysTick_Config
static __INLINE uint32_t SysTick_Config(uint32_t ticks);
作用:使能 SysTick,使能中断请求并把该中断优先级设置为最低(0x1111),把时钟源设置为 AHBCLK,同时设置 reload = ticks;
注意:SysTick中断优先级寄存器与外设中断优先级寄存器不同,但仍可按优先级规则判断优先级;
ticks:LOAD寄存器中的值,为reload值,必须是24位以内的树;
返回值:0则表示配置成功,1则表示配置失败;
示例:
SysTick_Config(72000); //默认系统为72M
//一般可不需读取返回值,只要ticks值在24位以内即可配置成功
编写Delay函数
编写一个 毫秒(ms) 级Delay函数
计算
设 SysTick 时钟源的频率为 CLK (MHz),LOAD寄存器中存储的值为 reload;
可得计数器在 1毫秒(ms) 内震荡 CLK×1000 次(即递减 CLK×1000 次),我们要让计数器中的值在 1毫秒(ms) 从 reload 递减至 0,将 reload 的值设置为 CLK×1000 即可;
若采用默认情况下 选取 AHBCLK = 72MHz,则将 LOAD 寄存器设置为 72000 即可。
程序思路
SysTick_Config函数 使能SysTick并配置 reload值;
不断读取 COUNTFLAG 位直至其值为 1,确认计数器已经递减至 0;
产生相应中断;
实现代码
void SysTick_Delay_ms(uint32_t tms){
uint32_t i;
SysTick_Config(72000); //默认系统为72M
for(i=0; iCTRL) & (1<<16)));
}
//使能中断请求
SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;}
上一篇:解决方法:STM32下载提示Cannot enter Debug Mode
下一篇:stm32配合xshell串口输入
- 热门资源推荐
- 热门放大器推荐
- LM2904DMR2G 函数发生器运算放大器的典型应用
- DEMO9RS08KA2: DEMO9RS08KA2 Demonstration Board
- MCP73871EV,MCP73871 锂离子电池充电器评估板
- STEVAL-IHM039V1,采用 STM32F415 微控制器的双电机控制演示板
- LTC1606CG 演示板、16 位、250ksps ADC
- RT8086B 3.5A、1.2MHz、同步降压转换器的典型应用
- TS4999EIJT 典型应用 免滤波器立体声 2.8 W D 类音频功率放大器,可选择 3D 音效
- LTM4615,采用 15mm-15mm 封装的完整双路和三路输出负载点模块稳压器
- LTC2415-1IGN 24 位 ADC 的典型应用电路使用电阻器阵列在励磁放大器中提供精确匹配
- 使用 Analog Devices 的 LTC1450LIN 的参考设计

现代雷达系统的信号设计
5962L0052401VPA

BFR340T






京公网安备 11010802033920号