原创
初始化系统定时器
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
版权声明:本文为博主原创,未经本人允许,禁止转载!
文章评论(0条评论)
登录后参与讨论