STM32-自学笔记(9.SysTick定时器控制LED灯闪烁,程序用到的库函数介绍)

1.SysTick_CLKSourceConfig

函数原型:viod SysTick_CLKSourceConfig (u32 SysTick_CLKSource)

功能:选择SysTick的时钟源

参数:SysTick_CLKSource:SysTick时钟源

参数:SysTick_CLKSource

SysTick_CLKSource_HCLK_Div8:SysTick时钟源等于系统时钟的8分频。

SysTick_CLKSource_HLCK:SysTick时钟源等于系统时钟。

例子:viod SysTick_CLKSourceConfig (SysTick_CLKSource_HLCK);     //选用AHB时钟作为SysTick的时钟源。

2.SysTick_SetReload

函数原型:void SysTick_SetReload (u32 Reload)

扫描二维码关注公众号,回复: 4521155 查看本文章

功能:设置SysTick的重装载值

参数:Reload:重装载值。取值必须为1~0x00FFFFFF

返回值:无

例子:SysTick_SetReload (0xFFFF);     //设置SysTick定时器的重装值为0xFFFF

3.SysTick_CounterCmd

函数原型:void SysTick_CounterCmd (u32 SysTick_Counter)

功能:使能或失能SysTick计数器

参数:SysTick_Counter:SysTick计数器新状态。

返回值:无

参数:SysTick_Counter

SysTick_Counter_Disable:失能计数器

SysTick_Counter_Enable:使能技术器

SysTick_Counter_Clear:清除计数值为0

例子:SysTick_CounterCmd (SysTick_Counter_Enable);       //使能SysTick计数器

4.SysTick_ITConfig

函数原型:void SysTick_ITConfig (FunctionalState NewState)

功能:使能或失能SysTick中断

参数:NewState:SysTick中断的新状态。可以取ENABLE或DISABLE

返回值:无

例子:SysTick_ITConfig (ENABLE);         //使能SysTick中断

5.SysTick_GetCounter

函数原型:u32 SysTick_GetCounter (void)

功能:获取SysTick计数器的当前值

参数:无

返回值:SysTick计数器的值

例子://获取当前SysTick定时器的计数值

u32 SysTickCurrentCounterValue;

SysTickCurrentCounterValue=SysTick_GetCounter ();

6.SysTick_GetFlagStatus

函数原型:FlagStatus SysTick_GetFlagStatus (u8 SysTick_FLAG)

功能:检测指定的SysTick标志位设置与否

参数:SysTick_FLAG:待检查的SysTick标志位

返回值:SysTick_FLAG的新状态

参数:SysTick_FLAG

SysTick_FLAG_COUNT:自上一次被读取后,计数器计数至0

SysTick_FLAG_SKEW:校准中断

SysTick_FLAG_NOREF:参考时钟未提供

例子://检查计数标志是否置位

FlagStatus Status;

Status=SysTick_GetFlagStatus (SysTick_FLAG_COUNT);

if (Status==RESET)

{

}

else

{

}

注意事项

  1. SysTick是一个24位定时器,所以最大重装值使2^24=16777215,注意不要超过此最大范围
  2. 启动SysTick要确保,定时器的计数器在上一次重装载之后没有再次开始计数,以保证定时的准确性
  3. SysTick是ARM Cortex-M3的标准配备,,所以SysTick并不是stm32的外设,不需要再RCC寄存器组打开他的时钟
  4. 每次SysTick溢出后,会置位计数标志位和中断标志位,计数标志位在计数值重载后被清除,而中断标志位也会随中断服务响应被清除,所以两个标志位不需要手动清除

猜你喜欢

转载自blog.csdn.net/niuyuce/article/details/85013935