STM32用SysTick来做定时器
2016-11-01 06:50
447 查看
1 硬件电路配置这里还是借用前面LED电路我就不贴图片。2 时钟说明SysTick和HCK的时钟频率是一样的库函数代码如下/*** @brief Initialize and start the SysTick counter and its interrupt.** @param ticks number of ticks between two interrupts* @return 1 = failed, 0 = successful** Initialise the system tick timer and its interrupt and start the* system tick timer / counter in free running mode to generate* periodical interrupts.*/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 */SysTick->VAL = 0; /* Load the SysTick Counter Value */SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |SysTick_CTRL_TICKINT_Msk |SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */return (0); /* Function successful */}
由库函数可知道没有进行分频动作所以时钟和主时钟一样
配置时钟中断的时间间隔
<pre name="code" class="cpp">void SysTick_Init(void) { /* SystemFrequency / 1000 1ms中断一次 * SystemFrequency / 100000 10us中断一次 * SystemFrequency / 1000000 1us中断一次 */ // if (SysTick_Config(SystemFrequency / 100000)) // ST3.0.0库版本 if (SysTick_Config(SystemCoreClock / 1000)) // ST3.5.0库版本 { /* Capture error */ while (1); } // 我需要不断的开启中断所以这句话屏蔽起来 // SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk; }
用中断模式所以需要在中断文件中做定时标志。一下这个函数在中断文件中
<pre name="code" class="cpp">/** * @brief This function handles SysTick Handler. * @param None * @retval : None */ void SysTick_Handler(void) { TimingDelay_Decrement(); }
中断函数在调用一个计数函数,计数函数应该放在外面一个公共文件中方便各个文件中数据传递。
/** 函数名 :TimingDelay_Decrement* 描述 获取节拍程序* 输入 无* 输出 无* 调用 在 SysTick 中断函数 SysTick_Handler()调用*/void TimingDelay_Decrement(void){if (TimingDelay != 0x00){TimingDelay--;}}
相关文章推荐
- STM32中的SysTick定时器
- STM32的系统滴答定时器(Systick)
- stm32在rt-thread上的SysTick(系统定时器)
- stm32笔记:Systick系统滴答定时器(认识4)
- STM32菜鸟成长记录---系统滴答定时器(systick)应用
- STM32 SysTick定时器
- STM32入门学习之SysTick系统定时器(STM32F030F4P6基于CooCox IDE)
- 使用STM32的systick定时器中断实现RTC工作过程出错
- STM32菜鸟成长记录---系统滴答定时器(systick)应用
- stm32上最方便的定时器Systick[操作寄存器+库函数]
- STM32 SysTick定时器
- STM32-------系统滴答定时器(systick)应用
- stm32笔记:Systick系统滴答定时器
- 关于STM32的systick定时器的详细说明
- STM32 SysTick定时器做延时函数
- 关于STM32的systick定时器的详细说明
- STM32学习笔记---SysTick定时器
- STM32_systick定时器解述
- STM32的Systick定时器
- stm32 SysTick定时器LED