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();
}
如上,这个设置的是什么东西?干什么用的?值是多少?如果要改变,应该怎样设置?
展开
 我来答
yonghengzhihai
2013-05-10 · 超过19用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:44.5万
展开全部
这是设置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();
}
追问
值是多少?怎么算的?如果要改变,应该怎样设置?
追答
这主要用于设定精确的延时。systick有一个24位的递减计数器,每个系统时钟周期计数器值减一,那么当计数器减到零时,产生中断。
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//SysTick时钟源为AHB时钟除以8,即72/8MHZ
SysTick_SetReload(9000);//SysTick重装载值为9000.即延时时间为8/(72M) *9000s
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式