历史上的今天
返回首页

历史上的今天

今天是:2024年11月12日(星期二)

正在发生

2021年11月12日 | STM32之TIMER基本定时器应用

2021-11-12 来源:eefocus

STM32之TIMER基本定时器应用

定时器溢出时间 Tout= ((arr+1)*(psc+1))/Tclk

相关结构体

typedef struct
{
  uint16_t TIM_Prescaler;         /*!<  计数分频值 */

  uint16_t TIM_CounterMode;       /*!< 计数模式  */

  uint16_t TIM_Period;            /*!<  .周期  */

  uint16_t TIM_ClockDivision;     /*!< 定时器系统分频数*/

  uint8_t TIM_RepetitionCounter;  /*! . 重复计数*/
} TIM_TimeBaseInitTypeDef;

 

typedef struct
{
  uint8_t NVIC_IRQChannel;                    /*!<  中断通道*/

  uint8_t NVIC_IRQChannelPreemptionPriority;  /*  主优先级*/

  uint8_t NVIC_IRQChannelSubPriority;         /*! 子优先级 */

  FunctionalState NVIC_IRQChannelCmd;         /* 中断命令:使能或禁止 */   
} NVIC_InitTypeDef;


//应用示例

/通用定时器3中断初始化
//这里时钟选择为APB1的2倍,而APB1为36M
//arr:自动重装值。
//psc:时钟预分频数
//这里使用的是定时器3!


void TIM3_Int_Init(u16 arr,u16 psc)
{
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    NVIC_InitTypeDef NVIC_InitStructure;

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能
    
    // 1.  定时器TIM3属性配置初始化
    TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值    
    TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值
    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟配置1分频
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位
 
    TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //使能指定的TIM3中断,允许更新中断

    //  2. 中断优先级配置
    NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3中断
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  //先占优先级0级
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //从优先级3级
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
    NVIC_Init(&NVIC_InitStructure);  //初始化NVIC寄存器


    TIM_Cmd(TIM3, ENABLE);  //使能TIMx                    
}
//定时器3中断服务程序


void TIM3_IRQHandler(void)   //TIM3中断
{
    if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  //检查TIM3更新中断发生与否
        {
        TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIMx更新中断标志
        LED1=!LED1;   //led闪烁
        }
}


应用:

main函数中只调用初始化时钟即可使用(void TIM3_Int_Init(u16 arr,u16 psc))


推荐阅读

史海拾趣

启臣微(Chip)公司的发展小趣事

在产品质量方面,启臣微始终坚持严格的标准和精细的工艺流程。公司建立了一套完善的质量管理体系,从原材料采购到产品出厂,每一个环节都经过严格把关。这种对品质的执着追求,让启臣微的产品在市场上赢得了良好的口碑,也为公司赢得了众多客户的信赖。

DMEL Inc公司的发展小趣事

随着全球环保意识的提高,DMEL Inc积极响应绿色环保的号召。公司加大了对环保技术的研发和应用力度,推出了一系列绿色、环保的产品。同时,DMEL Inc还注重生产过程中的节能减排工作,采用了先进的生产工艺和环保材料。这些措施的实施不仅提升了公司的环保形象也为企业带来了可持续发展的动力。

Chip Supply Micro Devices公司的发展小趣事

在追求经济效益的同时,Chip Supply Micro Devices也积极践行环保理念。公司注重节能减排和资源循环利用,通过采用环保材料和工艺,降低了生产过程中的环境影响。此外,公司还积极参与社会公益活动,推动电子行业的可持续发展。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实基础。

以上五个故事都是基于电子行业的一般情况和趋势虚构的,旨在展示一家微电子器件供应公司可能经历的发展历程。请注意,这些故事并非基于真实事件或公司。

BUSSMANN公司的发展小趣事

1985年,库柏工业收购了Bussmann公司,成立了新的事业部——“Cooper Bussmann熔断器”。这一收购为Bussmann带来了更广阔的市场和更多的资源,同时也带来了新的挑战和机遇。在库柏工业的支持下,Bussmann开始了更加积极的创新和市场拓展,逐渐成为了全球熔断器行业的领导者。

Corsair Electrical Connectors Inc公司的发展小趣事

在国内市场取得一定成绩后,Corsair开始将目光投向了更广阔的国际市场。公司积极参加国际电子展会,与海外客户建立联系,拓展销售渠道。同时,Corsair还根据不同国家和地区的市场需求,调整产品策略,提供定制化的解决方案。这些努力使得Corsair的产品逐渐走进了国际市场,公司的影响力也不断扩大。

Frequency Devices公司的发展小趣事

Frequency Devices公司自成立之初,便以技术创新为核心驱动力。在20世纪90年代初,公司研发团队成功开发出一种新型高频滤波器,该滤波器在信号传输效率和稳定性上实现了重大突破。这一创新不仅解决了当时通信领域的一大技术难题,还迅速获得了市场的广泛认可。随着技术的不断迭代,Frequency Devices公司持续投入研发,推出了更多高性能、低成本的高频电子产品,逐步奠定了其在行业内的领先地位。

问答坊 | AI 解惑

常见电源问题征集帖。。。把问题汇聚于此贴,各个击破。。。

常见电源问题征集帖。。。汇聚于此贴,各个击破   疑问者,把您们的问题描述出来高手者,把您们的思路敲打出来灌水者,把您的精力放在学习上 问题集中,集中问题集中解决集中的问题 有问题的请到此处呐喊吧,相信您的疑问会被更快的解决   ...…

查看全部问答>

问题很难!!

1.最近刚刚用了Quartus II 9.1新版本,在使用时我想建立一个SOPC,但怎么也建立不起来,和Quartus II 8.1不一样,好像缺少了什么!在project显示的是New component..但双击它时,系统给出一些提示,有一些warnings,意思好像提示要建立一个新的compo ...…

查看全部问答>

嵌入式开发的书籍

朋友们,给几本关于嵌入式开发的书籍怎么样?(本人是初学者)    …

查看全部问答>

向有微软嵌入式MCTS认证经验的各位大侠学习

推荐下载--Windows Embedded的微软认证技术专家(MCTS)及认证免费中文简体版备考工具包 http://topic.eeworld.net/u/20091125/21/fb074b0c-ad66-494c-aea5-c8137fe77582.html?seed=867673799&r=61440219#r_61440219 请过了的大虾们多多讲点备考 ...…

查看全部问答>

WINCE ACCESS cdb 转换问题

我有一个access 的a.mdb 文件,通过active sync 下载到 wince 开发板 转换成 a.cdb 转换成功, 再转换回 .mdb 也没错误,没乱码,但就是执行sql查询 select * from [tabname] 时出现问题 调用查询 create table abc ( id int ); 也没问题 //里面原 ...…

查看全部问答>

usb的识别

USB接口有四根线:VBUS,D+,D-,GND, 那么如果WINCE设备插入的是连接到电脑的USB线的话,WINCE会自动进入MASS STORAGE模式,如果 WINCE插入的是USB接口充电器的话,就只会充电.我想了解的是: 1.这是怎样区分是哪个设备插入呢,好象两种都会给VBUS上电, ...…

查看全部问答>

LED照明特点与驱动器类型

半导体照明与一般光伏电源配用的节能灯泡相比具有节能、长寿、安全、环保、色彩丰富、体积小、耐闪烁、可靠性高、调控方便等诸多优点。发光二极管作为一种新型照明光源正在获得越来越广泛的应用。   一、半导体照明特点   电子元件二极管中半 ...…

查看全部问答>

有IAREWSTM8的先驱没?

谁有应用经验? IAR发布EWSTM8后,并没有见到其提供的标准例程框架,就像EWSTM32那样的标准工程框架,启动文件、CONF文件等都没有提供,哪位先烈能介绍下在EWSTM8下的应用经验?…

查看全部问答>

无线天然气报警系统之软件编程实现

无线天然气报警系统之软件编程实现                                 & ...…

查看全部问答>

【设计工具】 SerialIO 中文资料

SerialIO 中文资料 [ 本帖最后由 GONGHCU 于 2012-2-23 02:56 编辑 ]…

查看全部问答>