STM32F10xxx 之 System tick Timer(SYSTICK Timer)

发布者:导航灯最新更新时间:2017-06-04 来源: eefocus关键字:STM32F10xxx  System  tick  Timer 手机看文章 扫描二维码
随时随地手机看文章

背景

研究STM32F10xxx定时器的时候,无意间看到了System tick Timer,于是比较深入的了解下,在此做个记录。

正文

System tick Timer是Cotex-M内核的24位计数的系统定时器。它的自动重载值可被随时配置更改,并且如果配置了系统定时器,那么它的中断也即被跟着使能。需要强调的是,在STM3210xxx的用户手册里,基本上找不到关于系统定时器的信息,所以想要深入了解配置该定时器,得去看内核相关文档,不过好在有了库函数,可以暂时不去深究内核文档,即可利用ST提供的库函数来进行配置。本文即记录了利用ST的库函数将该定时器的时钟配置为“AHB Clock”8分频并实现微妙(us)延时的方法。

首先是配置系统定时器的时钟源,库函数如下:

/**
  * @brief  Configures the SysTick clock source.
  * @param  SysTick_CLKSource: specifies the SysTick clock source.
  *     This parameter can be one of the following values:
  *     @arg SysTick_CLKSource_HCLK_Div8: AHB clock divided by 8 selected as SysTick clock source.
  *     @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;
  }
}

从以上的说明可以看出,系统定时器可被选择为AHB时钟或者AHB 8分频。本例则配置为 AHB 8分频:

/**
  * SysTick时钟源由HCLK/8提供,当系统频率为72MHz时,最小计数周期为1/9MHz,计满9次为1us,
  * tick_us以9为单位,在此为基础实现us延时。
  */SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
tick_us = sysclk/8;    // sysyclk = 72          tick_ms=(u16)tick_us*1000;

接着实现Delay_us(uint us)函数

void Delay_us(uint us)
{       
    uint temp;           
    SysTick->LOAD = us * tick_us;  // 滴答9次就是1us
    SysTick->VAL  = 0x00;           // 赋初值为"0"
    SysTick->CTRL = 0x01 ;          // 开启定时器
    do
    {
            temp = SysTick->CTRL;
    }    while( (temp&0x01) && (!(temp&(1<<16))) );
    SysTick->CTRL = 0x00;          // 停止计数器
    SysTick->VAL  = 0x00;          // 清空计数器}

以上函数则实现了us定时。
当然也可以使用它的中断函数:

/**
  * @brief  This function handles SysTick Handler.
  * @param  None
  * @retval None
  */void SysTick_Handler(void){    // 要做什么,自行发挥。}

参考链接

此文章参考借鉴了"ARM KEIL"官方文档:"System Tick Timer" 。

至此,记录完毕


关键字:STM32F10xxx  System  tick  Timer 引用地址:STM32F10xxx 之 System tick Timer(SYSTICK Timer)

上一篇:STM32f10xxx 之 GPIO口配置
下一篇:STM32 ADC基础与多通道采样

推荐阅读最新更新时间:2024-03-16 15:35

STM32库文件systemInit 晶振更改默认晶振8M到12M方法
由于stm32的库默认是外部晶振8M的情况下实现的,所以配置串口波特率的时候也是按8M,包括主频。 如果采用外部晶振12M,配置时钟为72MHZ 。 1)PLL倍频这样改: 8M: RCC- CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);//8*9=72 12M: RCC- CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);//12*6=72 库函数:void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul) 例:RC
[单片机]
GaN Systems 推出第四代氮化镓平台 突破能源效率瓶颈 加速应用版图拓展
重点摘要 • GaN Systems第四代氮化镓平台 (Gen 4 GaN Platform) 帮助全球客户在能源效率及尺寸微缩上突破瓶颈。 • 以业界领先的质量因子 (figures of merit) 强化GaN Systems作为全球氮化镓功率器件首选供货商的领导角色。 • 实现具有绝对优势的开关及传导损耗,进一步验证氮化镓功率半导体在消费电子、数据中心、光伏、工业及电动车市场的应用优势。 • 大幅优化效率及功率密度,解锁降低整体系统成本的密码,相较硅、碳化硅 (SiC)、甚至其他氮化镓产品,提供更高的成本效益。 • GaN Systems 作为推动电源产业更新换代的先驱角色,承诺持续开发高性价比的能源转
[电源管理]
GaN Systems推出多款集成功率模块评估套件
GaN Systems宣布推出四种新的集成功率模块的评估套件,其设计便于在大功率应用中使用和评估性能,如牵引逆变器、工业电机、储能系统、光伏(PV)逆变器以及各种低功率应用和砖式电源: 100V驱动器GaN DC/DC功率级模块,为DC/DC拓扑提供高功率密度和高效率。集成模块具有7mΩ半桥功率级、超低Rθ、高输出功率和超低死区时间的双PWM(脉冲宽度调制)输入。应用包括48V降压转换器、高性能D类音频系统、CPU/GPU/DDR的48V-12V直流转换器、ZVS和buck/boost拓扑。该模块可直接安装在评估板上,以便于测试。 650V 150A半桥IPM(智能电源模块),采用工业标准的轻薄外壳设计,带有压合销。该模块
[电源管理]
C51中断(void timer1(void) interrupt 3 using 3)
interrupt 表示中断优先级,using表示所用工作寄存器组。 interrupt x using y 跟在interrupt 后面的xx 值得是中断号,就是说这个函数对应第几个中断端口,一般在51中 0 外部中断0 1 定时器0 2 外部中断1 3 定时器1 4 串行中断 其它的根据相应得单片机有自己的含义,实际上c在编译的时候就是把你这个函数的入口地址放到这个对应中断的跳转地址 using y 这个y是说这个中断函数使用的那个寄存器组就是51里面一般有4个 r0 -- r7寄存器,如果你的终端函数和别的程序用的不
[单片机]
Austriamicrosystems
Austriamicrosystems 公司中文名 奥地利微电子 网站 http://www.austriamicrosystems.com/chi 总部地址 Tobelbader Strasse 30 A-8141 Unterpremstaetten 中国地址 Rm 1006, Tomson Commercial Building, No 710 Dongfang Rd, Pudong, Shanghai, China, 200122 电话 86-21-61627488 传
[厂商大全]
S5PV210 timer
TCFG0, R/W, Address = 0xE250_0000 Timer Input Clock Frequency = PCLK / ( {prescaler value + 1} ) / {divider value} TCFG1, R/W, Address = 0xE250_0004 CON, R/W, Address = 0xE250_0008 TCNTB4, R/W, Address = 0xE250_003C 举例 #define TCFG0 (*(unsigned int*)0xE2500000) #define TCFG1 (*(unsigned int*)0xE2500004) #de
[单片机]
S5PV210 <font color='red'>timer</font>
满足对可重构DSP方案需求 Improv Systems在京设技术支持中心
落户中国、签署协议、捐赠工具一个都不能少 电子工程世界网讯-2007年7月5日 -在可重构DSP解决方案上技术领先的北京音视潮半导体技术有限公司(Improv Systems)今天宣布已在北京开设了支持中心,以满足对快速增长的信号处理设计的市场需求。公司入驻到北京政府支持的“北京集成电路设计园” ,目标是促进当地集成电路设计的发展。 “音视潮公司在本地设立中心,再次显示中国的半导体价值链正在经历令人振奋的扩展。他们将在众多的其他出色国内国际供应商中添加宝贵的一员。这体现了本地化的机会,并帮助为中国当地的电子行业建立势头”,北京音视潮半导体技术有限公司(Improv Systems)在北京的营运负责人陈日兴说。 瞄准高复杂、高
[焦点新闻]
STM32 TIMER2的使用
配置定时100us的配置如下: TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); TIM_DeInit(TIM2); TIM_TimeBaseStructure.TIM_Period = 1;//59999;//1199;//9999; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DI
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved