您的位置 首页 IOT

STM32单片机Systick函数的使用方法

STM32单片机Systick函数的使用方法-在CMSIS中提供的函数是SysTick_Config(uint32_t ticks); 该函数设置了自动重载入计数器(LOAD)的值,SysTick IRQ的优先级,复位了计数器(VAL)的值,开始计数并打开SysTick IRQ中断。SysTick时钟默认使用系统时钟。

在“嵌入式学习006_SysTIck运用(一)”中,具体介绍了SysTIck中寄存器的运用方法,用到了许多函数,实际上到了3.5版别的规范固件库中,移除了相关驱动函数,用户有必要调用CMSIS.h中界说的函数,其间CMSIS只供给了一个SysTIck设置的函数,代替了STM32本来有的一切的驱动函数,这样做的意图,可能是简化SysTIck 的设置,但是降低了用户对SysTick的可控性。

在CMSIS中供给的函数是SysTick_Config(uint32_t ticks); 该函数设置了主动重载入计数器(LOAD)的值,SysTick IRQ的优先级,复位了计数器(VAL)的值,开端计数并翻开SysTick IRQ中止。SysTick时钟默许运用体系时钟。

 

其间这个函数界说在Core_cm3.h中 ,源代码如下所示:

static __INLINE uint32_t SysTick_Config(uint32_t ticks)

{

if (ticks 》 SysTick_LOAD_RELOAD_Msk)return (1);

SysTick-》LOAD= (ticks & SysTick_LOAD_RELOAD_Msk) – 1;

NVIC_SetPriority (SysTick_IRQn, (1《《__NVIC_PRIO_BITS) – 1);

SysTick-》VAL= 0;

SysTick-》CTRL= SysTick_CTRL_CLKSOURCE_Msk |

SysTick_CTRL_TICKINT_Msk|

SysTick_CTRL_ENABLE_Msk;

return (0);}

从上面的函数中能够看出,这个函数把Systick的初值,中止优先级,使能中止,敞开定时器都完成了。大大简化了程序。

其间ticks 代表的是初值。例如体系时钟是72Mhz 那么要发生1ms的时基,那么咱们能够这样去写。

SysTick_Config(SystemCoreClock/1000);当然也能够写成:SysTick_Config(72000);

了解了这些,咱们能够用它来做一个简略的延时函数delay_ms(u16 time);

代码如下:

void delay_ms(u16 time)

{

nTime=time ;/nTime 是个全局变量 可设 extern u16 nTime;/

while(nTime);

}

在中止函数中直接参加nTime–;

在主函数 初始化过程中 参加SysTick_Config(72000);

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/346170.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部