
STM32的Systick设置问题:
voidSysTInit(void){SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);SysTick_SetRe...
void SysTInit(void)
{
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
SysTick_SetReload(9000);
SysTick_ITConfig(ENABLE);
NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick, 0, 0);
SysTStop();
}
如上,这个设置的是什么东西?干什么用的?值是多少?如果要改变,应该怎样设置? 展开
{
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
SysTick_SetReload(9000);
SysTick_ITConfig(ENABLE);
NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick, 0, 0);
SysTStop();
}
如上,这个设置的是什么东西?干什么用的?值是多少?如果要改变,应该怎样设置? 展开
1个回答
展开全部
这是设置SysTick 定时器的一个初始化函数,具体解析如下:
void SysTInit(void)
{
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//SysTick时钟源为AHB时钟除以8
SysTick_SetReload(9000);//SysTick重装载值为9000
SysTick_ITConfig(ENABLE);//使能SysTick中断
NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick, 0, 0);//设置优先级为0组0级
SysTStop();
}
void SysTInit(void)
{
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//SysTick时钟源为AHB时钟除以8
SysTick_SetReload(9000);//SysTick重装载值为9000
SysTick_ITConfig(ENABLE);//使能SysTick中断
NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick, 0, 0);//设置优先级为0组0级
SysTStop();
}
追问
值是多少?怎么算的?如果要改变,应该怎样设置?
追答
这主要用于设定精确的延时。systick有一个24位的递减计数器,每个系统时钟周期计数器值减一,那么当计数器减到零时,产生中断。
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//SysTick时钟源为AHB时钟除以8,即72/8MHZ
SysTick_SetReload(9000);//SysTick重装载值为9000.即延时时间为8/(72M) *9000s
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询