stm32利用SysTick实现精确定时
来源:互联网 发布:.sql注释 编辑:程序博客网 时间:2024/04/30 09:07
stm32定时器资源虽然丰富,但是在一些项目中,我们任然希望不借助传统定时器实现精确延时,这样在面对一些对定时器资源需求多的项目我们剩下资源用来做该做事情。STM32用的是ARM Cortex-Mx系列的内核,该核心具有一个滴答时钟,这个滴答时钟大意就是在配置完时钟源和使能以后能进入到中断处理函数中。是为了方便一些操作系统,诸如ucOS等系统,的移植,作为任务调用的同步节拍。以下是在stm32f103上利用SysTick来实现精确延时的步骤。
第一步:配置时钟源
- void SysTick_Configuration(void)
- {
- /* Setup SysTick Timer for 1 uS interrupts */
- /* SystemCoreClock isdefined in ¡°system_stm32f10x.h¡± and equal to HCLK frequency */
- if (SysTick_Config(72))
- {
- /* Capture error */
- while (1);
- }
- NVIC_SetPriority (SysTick_IRQn, 3); // the highest priority */
- }
void SysTick_Configuration(void){/* Setup SysTick Timer for 1 uS interrupts *//* SystemCoreClock isdefined in ¡°system_stm32f10x.h¡± and equal to HCLK frequency */if (SysTick_Config(72)) {/* Capture error */while (1);}NVIC_SetPriority (SysTick_IRQn, 3); // the highest priority */}
第二步:写中断处理函数
- void SysTick_Handler(void)
- {
- if(TimingDelay != 0)
- TimingDelay --;
- }
void SysTick_Handler(void){if(TimingDelay != 0)TimingDelay --;}
第三步:写延时函数
- volatile unsigned int TimingDelay = 0;
- void Delay_mS(unsigned int n)
- {
- TimingDelay = n * 1000;
- while(TimingDelay !=0);
- }
- void Delay_uS(unsigned int n)
- {
- TimingDelay = n;
- while(TimingDelay !=0);
- }
volatile unsigned int TimingDelay = 0;void Delay_mS(unsigned int n){TimingDelay = n * 1000;while(TimingDelay !=0);}void Delay_uS(unsigned int n){TimingDelay = n;while(TimingDelay !=0);}
完成
0 0
- stm32利用SysTick实现精确定时
- stm32利用SysTick实现精确定时
- STM32使用Systick 实现精确定时
- STM32使用systick实现精确延时
- 利用STM32的SysTick设计精确延时函数
- stm32使用systick精确延时
- STM32 systick 定时 时间计算
- 利用STM32的Systick中断实现按键消抖
- STM32之用SysTick做准确定时
- STM32之用SysTick做准确定时
- STM32之用SysTick做准确定时
- STM32之用SysTick做准确定时
- stm32 软件精确延时非systick 非中断
- STM32 SysTick 精确延时(非中断方式)
- stm32 软件精确延时非systick 非中断
- stm32 systick
- STM32 Systick
- stm32 systick
- [DP动归]-POJ-2479-最大两段子串和
- POJ1797--Heavy Transportation
- 解决 Tomcat Server in Eclipse unable to start within 45 seconds 不能启动的问题
- ExtJS中FormPanel设置FileUpload为true后,提交返回下载文件的解决
- 广州.Net培训哪里好?
- stm32利用SysTick实现精确定时
- Nginx Location配置总结
- 传智博客光盘申领
- VLC 1.1.1播放器发布 完善A卡硬件加速
- 日常笔记(总是有些一闪而过的东西,记在好了)
- Qt 不能编译成Release或Debug
- mysql与字符串国际化
- 手游鲸鱼玩家四大特征
- win下移动数据文件