我把注釋掉了Delay_Init();? ? 然后自己初始化的系統(tǒng)滴答定時器
//SysTick 初始化配置
static uint32_t SysTick_Config(uint32_tticks)
{
? ? SysTick->CTLR = 0x00000000; ? ? ? ? ? ? //控制寄存器復位
? ? SysTick->SR = 0x00000000; ? ? ? ? ? ? ? //狀態(tài)寄存器復位
? ? SysTick->CNT = 0x00000000; ? ? ? ? ? ? ?//計數(shù)器復位,設置初始值為0
? ? SysTick->CMP = ticks; ? ? ? ? ? ? ? ? ? //給重加載寄存器賦值
? ? NVIC_SetPriority(SysTicK_IRQn, 3); ? ? ?//設置SysTick中斷優(yōu)先級
? ? NVIC_EnableIRQ(SysTicK_IRQn); ? ? ? ? ? //使能開啟Systick中斷
? ? SysTick->CTLR |= 0x0000000B; ? ? ? ? ? ?//啟動系統(tǒng)計數(shù)器STK(HCLK/8時基),向上計數(shù)到比較值后重新從 0 開始計數(shù)
? ? return (0);
}
//SysTick初始化
void Systick_Init(void)
{
? ? //此處在進行初始化的時候設置比較寄存器的值
? ? SysTick_Config(SystemCoreClock / 8000 );//1ms ? 72M/8000/9000000 = 1/1000 = 1ms
}