本文采用芯片为stm32f103rc,定时器为systick。
SysTick—系统定时器是属于 CM3 内核中的一个外设,内嵌在 NVIC 中。系统定时器
是一个 24bit 的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系统时钟 SYSCLK 等于 72M。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产生一次中断,以此循环往复。
先明确思路:总共分成4各部分来实现:
1、初始化定时器。
2、LED_GPIO 初始化。
3、计算精确延时,这里配置为1s。
4、点亮、熄灭LED灯。
编写初始化函数SysTick_Init();,从core_cm3中调用库函数SysTick_Config();
SysTick_Config();函数原型:
static __INLINE uint32_t SysTick_Config(uint32_t ticks)
{
if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */
SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; /* set reload register */
NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Cortex-M0 System Interrupts */
SysTi