1.systick时钟来源

2.SysTick库函数

3.源码

/**

*@}

*/

/** @defgroup SysTick_clock_source

*@{

*/

#define SysTick_CLKSource_HCLK_Div8    ((uint32_t)0xFFFFFFFB)

#define SysTick_CLKSource_HCLK         ((uint32_t)0x00000004)

#define IS_SYSTICK_CLK_SOURCE(SOURCE) (((SOURCE) == SysTick_CLKSource_HCLK) || \

((SOURCE) == SysTick_CLKSource_HCLK_Div8))

/**

*@brief  Configures the SysTick clocksource.

*@param  SysTick_CLKSource: specifies theSysTick clock source.

*   This parameter can be one ofthe following values:

*     @argSysTick_CLKSource_HCLK_Div8: AHB clock divided by 8 selected as SysTick clocksource.

*     @arg SysTick_CLKSource_HCLK:AHB clock selected as SysTick clock source.

*@retval None

*/

void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)

{

/* Check the parameters */

assert_param(IS_SYSTICK_CLK_SOURCE(SysTick_CLKSource));

if (SysTick_CLKSource == SysTick_CLKSource_HCLK)

{

SysTick->CTRL |= SysTick_CLKSource_HCLK;

}

else

{

SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8;

}

}

/*##################################   SysTick function ############################################ */

#if (!defined (__Vendor_SysTickConfig)) || (__Vendor_SysTickConfig == 0)

/**

*@brief  Initialize and start the SysTickcounter and its interrupt.

*

*@param   ticks   number of ticks between two interrupts

*@return  1 = failed, 0 = successful

*

*Initialise the system tick timer and its interrupt and start the

*system tick timer / counter in free running mode to generate

*periodical interrupts.

*/

static __INLINE uint32_t SysTick_Config(uint32_t ticks)

{

if (ticks > SysTick_LOAD_RELOAD_Msk)  return (1);            /* Reload value impossible */

SysTick->LOAD  = (ticks & SysTick_LOAD_RELOAD_Msk) - 1;      /* set reload register */

NVIC_SetPriority (SysTick_IRQn, (1VAL   = 0;                                          /* Load the SysTick Counter Value */

SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk |

SysTick_CTRL_TICKINT_Msk   |

SysTick_CTRL_ENABLE_Msk;                   /* Enable SysTick IRQ and SysTick Timer*/

return (0);                                                 /* Function successful */

}

#endif

#ifdefSYSCLK_FREQ_HSE

uint32_t SystemCoreClock         = SYSCLK_FREQ_HSE;        /*!#elif defined SYSCLK_FREQ_24MHz

uint32_t SystemCoreClock         = SYSCLK_FREQ_24MHz;        /*!< System Clock Frequency (Core Clock) */

#elif defined SYSCLK_FREQ_36MHz

uint32_t SystemCoreClock         = SYSCLK_FREQ_36MHz;        /*!#elif defined SYSCLK_FREQ_48MHz

uint32_t SystemCoreClock         = SYSCLK_FREQ_48MHz;        /*!#elif defined SYSCLK_FREQ_56MHz

uint32_t SystemCoreClock         = SYSCLK_FREQ_56MHz;        /*!#elif defined SYSCLK_FREQ_72MHz

uint32_t SystemCoreClock         = SYSCLK_FREQ_72MHz;        /*!#else /*!< HSI Selected as System Clock source */

uint32_t SystemCoreClock         = HSI_VALUE;        /*!< System Clock Frequency (Core Clock) */

#endif

///

/* Configure the SysTick */

SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND);//8000000/1000=>1ms

/**

*This is the timer interrupt service routine.

*

*/

void SysTick_Handler(void)

{

/* enter interrupt */

rt_interrupt_enter();

rt_tick_increase();

/* leave interrupt */

rt_interrupt_leave();

}

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

stm32滴答计时器_STM32的系统滴答定时器(Systick)相关推荐

  1. stm32滴答计时器_STM32之系统滴答定时器

    一.SysTick(系统滴答定时器)概述 操作系统需要一个滴答定时器周期性产生中断,以产生系统运行的节拍.在中断服务程序里,基于优先级调度的操作系统会根据进程优先级切换任务,基于时间片轮转系统会根据时 ...

  2. stm32滴答计时器_STM32 的系统滴答定时器( Systick) 彻底研究解读

    作者:王健 前言 SysTick 比起那些 TIM 定时器可以说简单多啦~~~~~哥的心情也好了不少, 嘎嘎!! ARM Cortex-M3 内核的处理器内部包含了一个 SysTick 定时器,它是一 ...

  3. stm32滴答计时器_stm32中的系统滴答定时器使用

    系统滴答定时器对于stm32的初学者来说还是非常重要的,因为随着你学习的深入编程过程中肯定会调用延时函数,比如我之前的一些gpio相关的实验中.那么延时函数的编写也是几种方法的,一般开始接触都是让系统 ...

  4. stm32滴答计时器_STM32——系统滴答定时器

    STM32--系统滴答定时器 一.SysTick[内核中] [风格:先描述一下库对寄存器的封装,再举例实现某些功能] SysTick定时器被捆绑在NVIC中,用于产生SysTick异常(异常号: 15 ...

  5. stm32滴答计时器_stm32笔记:Systick系统滴答定时器

    Systick :系统心跳定时器,提供系统节拍 裸机程序中可作为独立的延时定时器 用途: 1.产生操作系统的时钟节拍 2.便于不同处理器之间程序移植 SysTick定时器被捆绑在NVIC中,异常号15 ...

  6. stm32滴答计时器_STM32嵌入式开发学习笔记(四):使用滴答计时器实现精准计时...

    前面我们讲过,因为在STM32上没有系统时间的接口,因此无法调用sleep函数,在本文中,笔者将利用滴答计时器实现精准延时. 查阅技术手册,滴答计时器依赖于一个SysTick_Type类型寄存器,定义 ...

  7. STM32使用内部时钟HSI作为系统时钟及配置Systick定时器

    参考:https://blog.csdn.net/huangyangquan/article/details/78790443 https://www.cnblogs.com/dustinzhu/p/ ...

  8. STM32的系统嘀嗒定时器(SysTick)实现简单计时功能

    SysTick是属于内核里的外设,只要是Cortex M内核的单片机,都拥有这个24位的SysTick定时器. SysTick的counter是一个递减计数器,首先要填入reload自动重装载计数器的 ...

  9. 定时器开始时延时了十几秒_第六章--系统滴答定时器

    第六章--系统滴答定时器 简介:系统滴答定时器是内核(这里指M4)定时器使用的是内核时钟源168MZ或可以选择外部时钟源21MZ 应用场合: 为UCOS系统提供时钟节拍 作为简单的定时器延时使用 // ...

最新文章

  1. JS数据结构与算法_链表
  2. 【python练习】支付宝自动偷取能量
  3. 编程方法学笔记:karel
  4. AI自动P图:maskrcnn+inpaintting消除并修复指定区域图像
  5. android开发Proguard混淆与反射
  6. VueI18n的应用
  7. js中使用0 “” null undefined {}需要注意
  8. (29)System Verilog设计SPI接收
  9. 【初赛】NOIP2018程序模板
  10. 新的文档类型定义模型带来的问题--javascirpt/CSS
  11. 可以自我学习的AI五子棋
  12. 离线强化学习总结!(原理、数据集、算法、复杂性分析、超参数调优等)
  13. 铁路订票系统的简单设计
  14. 2022年第一个诺奖揭晓!获奖者的父亲,诺贝尔生理学或医学奖得主
  15. 数仓指标体系--建设方法
  16. 蓝牙BLE协议分析【附代码实例】
  17. 1007 Maximum Subsequence Sum (25 分) java 题解
  18. oracle数据块格式小结
  19. 17万用来助学,能做什么?
  20. ZYNQ学习笔记_GPIO实例:通过EMIO实现按键控制LED

热门文章

  1. 技术重塑未来工作方式
  2. 牛!2020年,这项技术将获得1,000,000,000元人民币注资!
  3. 别吹了!Python程序员正在消失! 资深CTO:你才发现?
  4. “云原生全家桶“KubeSphere 如何让企业从容迈进云原生时代?
  5. 边缘计算容器化是否有必要?
  6. 每年一波FPGA系列新品,这次Achronix专为AI/ML应用打造……
  7. 文石服务器维护,文石BOOX OS 2.0新系统即将上线,联合京东读书推出BOOX书城
  8. java jdk myeclipse_java初体验(JDK+myeclipse)
  9. 计算机编程pdf百度云,计算机编程基础.pdf
  10. enum 有什么好处_林卡尔|先买地板后装修的三大好处