CMSIS只提供了一个SysTick设置的函数,替代了STM32原有SysTick驱动的全部函数。
SysTick_Config(uint32_t ticks);
该函数设置了自动重载入计数器(LOAD)的值,SysTick IRQ的优先级,复位了计数器(VAL)的值,开始计数并打开SysTick IRQ中断。SysTick时钟默认使用系统时钟。重载值=时钟频率(Hz)x 延时时间(s).
比如说要产生1ms的延时,则我们就调用SysTick_Config(SystemCoreClock/1000);即可.
void SYSTICK_Config()
{
SysTick_Config(SystemCoreClock/1000);
}
__IO uint32_t timingdelay;
void delay_ms(uint32_t ntime)
{
timingdelay = ntime ;
while(timingdelay != 0) ;
}
void SysTick_Handler(void)
{
timingdelay--;
}