STK寄存器 24位
具体看手册
STK_CTRL 控制
第0位 设置为1使能
第1位 设置为1产生异常
第2位 时钟源选择 有两个 0:AHB(72mhz)/8 = 9mhz 1: 72mhz
第16位 标志位是不是为0
这个72为时钟频率具体看手册
STK_LOAD 重装载值
72000000/1 x 72 = 1000000/1 = 1us
1us * 1000000 = 1s
STK_VAL 当前计数值 为0会重装载
库函数
SysTick_Config() 配置systick
返回值 成功为0 失败为1
例子:
void SysTick_ConfigurAction(void) {
while(SysTick_Config(72));
SysTick->CTRL &= ~(1<<0); //清0 关闭定时器 使用时在开启
}
void Delay_us(unsigned int n) {
TimingDelay = n; //extern unsigned int TimingDelay; 需要外部声明 放在 SysTick_Handler 里 TimingDelay--;
SysTick->CTRL |= (1<<0); //置1 使能
while(TimingDelay);
SysTick->CTRL &= ~(1<<0); //置0
}