首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

stm32精确延时

stm32精确延时

1

1、首先对SysTick进行设置



void SysTick_Configuration(void)


{


SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //系统时钟8分频
SysTick_SetReload(9000); //周期1ms
SysTick_ITConfig(ENABLE); //打开中断


}


2、延时函敿/span>


void SysTick_Delay(u32 nTime)


{


SysTick_CounterCmd(SysTick_Counter_Enable); //允许计数


TimingDelay = nTime;


while(TimingDelay != 0);


SysTick_CounterCmd(SysTick_Counter_Disable); //禁止计数


SysTick_CounterCmd(SysTick_Counter_Clear); //计数器清0


}


3. 中断函数


void SysTickHandler(void)


{


TimingDelay_Decrement();


}


4. 中断调用函数


void TimingDelay_Decrement(void)


{


if (TimingDelay != 0x00)


{


TimingDelay--;


}


}
继承事业,薪火相传
返回列表