历史上的今天
返回首页

历史上的今天

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

正在发生

2018年12月24日 | STM32 定时器中断函数

2018-12-24 来源:eefocus

#include"timer.h"

#include"led.h"

//晶振是8MHZ,默认CPU是9倍频,

//通用定时器 3 中断初始化

//这里时钟选择为 APB1 的 2 倍,而 APB1 为 36M

// SYSCLK:72M

//    AHB:72M

//   APB1(PCLK1):36M

 //  APB2(PCLK2):72M

//    PLL:72M

//arr:自动重装值。

//psc:时钟预分频数

//这里使用的是定时器 3

//定时器溢出时间计算方式Tout=((arr+1)*(psc+1))/Ftus.

voidTIM3_Int_Init(u16 arr,u16 psc)

{

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

NVIC_InitTypeDefNVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); //①时钟 TIM3 使能

//定时器 TIM3 初始化

TIM_TimeBaseStructure.TIM_Period= arr; //设置自动重装载寄存器周期的值

TIM_TimeBaseStructure.TIM_Prescaler=psc; //设置时钟频率除数的预分频值  TIM_Prescaler是预分频值,它与TIM_Period(重载周期值)的乘积即为计数的总值。

TIM_TimeBaseStructure.TIM_ClockDivision= TIM_CKD_DIV1; //设置时钟分割

199

TIM_TimeBaseStructure.TIM_CounterMode= TIM_CounterMode_Up; //TIM 向上计数

//TIM_RepetitionCounter为PWM( 脉冲宽度调制)的设定参数,一般定时器不用设置



TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);  //②初始化 TIM3

TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);  //③允许更新中断 设置中断的类型,一般的定时器为更新中断,即由溢出事件产生的中断,设置的方式为:TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE),其中第一项是定时器代号,第二项为类型,这里设定为更新方式,第三项为使能。

//中断优先级 NVIC 设置

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_InitStructure.NVIC_IRQChannelPreemptionPriority=x(x为0~15,具体要看下面的优先级组别的选择);

//)响应优先级,库函数设置为NVIC_InitStructure.NVIC_IRQChannelSubPriority =x(x为0~15,具体要看下面的优先级组别的选择);

NVIC_Init(&NVIC_InitStructure);   //④初始化 NVIC 寄存器

TIM_Cmd(TIM3,ENABLE);  //⑤使能 TIM3

}

//定时器 3 中断服务程序⑥

voidTIM3_IRQHandler(void) //TIM3 中断 IRQ是中断请求的简称 指的中断入口地址

{

if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查 TIM3 更新中断发生与否 捕获中断还是更新中断就用这判断

{

TIM_ClearITPendingBit(TIM3,TIM_IT_Update ); //清除 TIM3 更新中断标志

LED1=!LED1;

}


推荐阅读

史海拾趣

Diodes Incorporated公司的发展小趣事

近年来,Diodes Incorporated的财务表现稳步提升。根据公司公布的财报数据显示,公司归母净利润持续增长,营业收入也保持着稳定的增长态势。这一成绩的取得,得益于公司对产品质量的严格把控、对市场需求的精准把握以及对新技术的持续投入。同时,公司还通过优化生产流程、降低生产成本等措施,进一步提升了盈利能力。

Ferranti Electric Inc公司的发展小趣事

Ferranti Electric Inc公司的历史可追溯到1880年,由Sebastian Ziani de Ferranti(塞巴斯蒂安·齐亚尼·德·费兰蒂)在英国创立。作为发电机及壳式变压器的发明者之一,费兰蒂博士不仅拥有交流发电机、高压电缆、断路器等176项专利,而且他的创新精神也为公司的创立和发展奠定了坚实的基础。初创时期,公司就专注于电气产品的研发和生产,逐渐在电气行业崭露头角。

BURGESS公司的发展小趣事

随着时间的推移,BURGESS不断扩展其业务范围,并于1984年首次开发租船服务。这一创新举措不仅满足了客户多样化的需求,也进一步巩固了其在行业内的领先地位。此后,BURGESS继续其国际化步伐,成功进驻美国市场,进一步扩大了其全球影响力。

ARMKEIL Microcontroller Tools公司的发展小趣事

ARMKEIL Microcontroller Tools公司的起点可以追溯到Keil公司的成立。1985年,Keil Elektronik GmbH(凯尔电子有限责任公司)在德国慕尼黑正式成立,由一群热衷于嵌入式系统开发的工程师创立。起初,公司的主要业务是开发和销售嵌入式系统的开发工具,这些工具为当时的电子工程师提供了强大的支持。随着业务的发展,Keil逐渐在嵌入式系统开发领域崭露头角。

西安航天民芯公司的发展小趣事

除了商业产品的研发外,西安航天民芯还积极承担国家重大科研项目。公司参与了我国工业强基高性能工业DSP芯片等多项国产化项目的研发工作,为提升国家产业核心竞争力做出了贡献。这些项目的成功实施,进一步提升了西安航天民芯在行业内的影响力和地位。

DeLorme公司的发展小趣事

进入21世纪后,DeLorme公司凭借其在GPS技术领域的深厚积累,不断推出具有创新性的产品。其中,一款集成了GPS、电子罗盘和高度计等多功能的户外导航设备在市场上引起了广泛关注。这款产品不仅具有高精度、高可靠性的特点,还具备了用户友好的界面设计和人性化的操作体验。通过这款产品,DeLorme公司进一步巩固了其在户外导航领域的领先地位。

问答坊 | AI 解惑

推荐ATMEL9260+Zigbee开发套件完美版

产品名称:ATMEL9260ARM + JN5139Zigbee    售价:1188元 产品规格:14*9.2cm      10*6cm 产品型号:CA-9260-ZB-EK                     &nb ...…

查看全部问答>

有谁用过红色飓风二代FPGA开发板的么?求助~

我手里的CY1C12开发板上的芯片是FPGA的EP1C12Q240C8,今天我用一个小程序,试图点亮那四个七段数码管。用的动态显示。然而,当我配置管脚,下载到板上后,数码管能够顺序点亮,但是不是之前程序里面设计的数字,有些乱码的感觉。 我怀疑是管脚配置 ...…

查看全部问答>

XILINX FPGA 设计的点滴

XILINX FPGA 设计的点滴 1、为时钟信号选用全局时钟缓冲器BUFG 2、尽量只用一个时钟沿来寄存数据 3、除了用CLKDLL或DCM产生的时钟外不要在内部产生时钟 4、注意状态机编码的可靠性:状态机转移状态改变的位数越少,则功能越可靠。 5、逻辑 ...…

查看全部问答>

windows CE6.0 USB 键盘鼠标

大家好,我在订制系统的时候,想添加USB键盘鼠标的支持,请问一下 需要添加那些组建,Reg文件 和 BIB文件需要添加那些东西 ?…

查看全部问答>

急! 使用wininet API 实现Http下载

刚刚接触Wince 6.0 现在要实现一个使用url链接下载的功能 ,参考了网上一些程序编写如下代码 void CHttpGet::Download(CString url) {         try         { CStdioFile* pSFile=NULL; CInternetSession ...…

查看全部问答>

EVC4的使用问题

请问大虾们EVC4-TOOL-WINDOWS CE PLATFORM MANAGER CONFIGURATION选项有什么用处? 如何在该选项里添加一个项目(前面带+号的那个东西)? 我是新人,百度上搜了很久没有答案,请大家帮帮忙,谢谢了。…

查看全部问答>

keil3 编译问题

我将ADS1.2下一个工程移植到Keil3 IDE下时,在解决了一些编译错误问题后,也参考了一些说明,编译完成后没有错误,当然有一堆的警告,什么字符串无效,最后一行没空等,但是连接没有生成默认该生成的.axf文件,导致调试也找不到.axf文件,当然也生 ...…

查看全部问答>

evc中怎样编辑多国语言

evc中怎样编辑多国语言 比如说我要SetWindowText(_T(\"? ?? ??\")); 但在Evc中成了SetWindowText(_T(\"? ?? ??\")); …

查看全部问答>

io口扩展问题

我想做个控制板上16个继电器,再留出一个可控制的扩展板接口也是控制16个继电器的。 我目前想用16f877单片机进行控制,不知道io扩展芯片用什么好 有什么好的设计方案,请帮忙,谢谢!…

查看全部问答>

EE_FPGA V1.0 调试进展(2010.10.17更新)

正面:   反面: 目前进展: 1. 最小系统工作 2. LED工作 3. key工作 4. usb转串口驱动正常,串口工作正常   稍后上图,敬请关注     10.17更新 [ 本帖最后由 chenzhufly 于 2010-10-17 14:20 编辑 ]…

查看全部问答>