原创 初始化系统定时器

2024-1-21 14:34 268 2 2 分类: 物联网 文集: 学习分享

** ************************************************************************** ** -------------------------------------------------------------------- ** ** @name : Systick_init ** @brief : None ** @param : None ** @retval : None ** @author data : Depressed 2023-09-06 ** @version : v1.0 ** -------------------------------------------------------------------- ** ** @modifier data : None ** @version : None ** @description : None ** -------------------------------------------------------------------- ** ** @attention : None ** -------------------------------------------------------------------- ** ************************************************************************** **/ void Systick_init(void) { /*下面这两种写法都可以*/ // if (SysTick_Config(SystemCoreClock / 1000)) if (SysTick_Config(RCC_GetSysClockFreq() / 1000)) { // Capture error while (1); } // Configure the SysTick handler priority NVIC_SetPriority(SysTick_IRQn, 0x0);//SysTickinterrupt priority class set



这段代码是一个名为`SysTick_init`的函数,用于初始化系统定时器(SysTick)。它使用了两个版本的`SysTick_Config`函数来配置系统定时器的时钟频率。

首先,通过调用`SystemCoreClock / 1000`或`RCC_GetSysClockFreq() / 1000`来设置系统定时器的时钟频率。这两个表达式中的任何一个都可以得到正确的时钟频率值。

接下来,使用`if (SysTick_Config(...))`语句来检查配置是否成功。如果配置失败,将进入一个无限循环,直到配置成功为止。

最后,使用`NVIC_SetPriority(SysTick_IRQn, 0x0)`来设置系统定时器的中断优先级。这里的`SysTick_IRQn`是系统定时器中断的名称,而`0x0`表示最低优先级。

这段代码的目的是初始化系统定时器,以便在程序中进行计时和中断处理。

作者: 丙丁先生, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3996156.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
2
关闭 站长推荐上一条 /3 下一条