SysTick的固件库函数有两个:一个是之前的SysTick_CLKSourceConfig()函数,另一个是SysTick_Config()函数。SysTick_Config()函数可以在core_cm4.h文件中找到,如图6-8所示。使用该函数可设置SysTick相关寄存器而无须去分别设置每个寄存器。
图6-8 SysTick_Config()函数
该函数的形参只有一个,即ticks,并且有返回值。形参ticks表示两次中断之间的计数值,即初值,当返回值为0时代表函数成功,当返回值为1时代表函数失败。
下面分析一下函数的内容:
第1行,如果ticks-1>SysTick_LOAD_RELOAD_Msk的最大值即初值大于计数器最大值,说明计数是失败的,返回1(1UL代表无符号长整形常量1,0UL代表无符号长整形常量0)。(www.xing528.com)
第2行,赋值SysTick->LOAD寄存器,即对SysTick的初值进行设置,值为ticks-1。
第3行,设置NVIC中断向量表,设置SysTick的中断优先级。
第4行,SysTick->VAL清0,注意这里为SysTick->VAL,同时也清除SysTick控制寄存器和状态寄存器中的COUNTFLAG标志。
第5行,使能SysTick中断,打开SysTick定时器。
最后一行,执行完毕,返回0,代表函数成功。
通过阅读函数,得知SysTick_Config()只需把形参设置为定时器需要计数的初值,而其他的设置中断优先级、使能中断、打开SysTick定时器都由函数完成,无须另外进行设置,因此SysTick_Config()函数使用起来非常方便。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。