一 通用定时器的工作过程如下图:
二 计数器模式:
(1)向上计数模式:计数器从0计数到自动加载值,然后重新从0开始计数并且产生一个计数器溢出事件
(2)向下计数模式:计数器从自动装入的值开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出的事件
(3)中央对齐模式(向上/向下计数):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1,并且产生一个计数器溢出事件,然后再从0开始计数
通用定时器常用寄存器和库函数:
(1)定时器使能函数:void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState)
(2)定时器中断使能函数:void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState)
(3)状态标志位获取和清除:
FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);
void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);
ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT);
void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT);
三 定时器中断实现步骤:
(1)使能定时器时钟:RCC_APB1PeriphClockCmd();
(2)初始化定时器,配置ARR,PSC:TIM_TimeBaseInit();
(3)开启定时器中断,配置NVIC:
void TIM_ITConfig();
NVIC_Init();
(4)使能定时器:TIM_Cmd();
(5)编写中断服务函数:TIMx_IRQHandler();
四 定时器的计算:Tout(溢出时间)=(ARR+1)(PSC+1)/Tclk
五 下面是定时中断的代码:
(1)TIME.c
void TIM3_Int_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能
//定时器TIM3初始化
TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //使能指定的TIM3中断,允许更新中断
//中断优先级NVIC设置
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure); //初始化NVIC寄存器
TIM_Cmd(TIM3, ENABLE); //使能TIM3
}
//定时器3中断服务程序
void TIM3_IRQHandler(void) //TIM3中断
{
static u8 count=0;
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查TIM3更新中断发生否
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //清除TIM3更新中断标志
LED1=!LED1;
}
}
(2)MAIN.c
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
delay_init();
LED_Init();
TIM3_Int_Init(4999,7199) ; //500ms
while(1)
{
LED3 = !LED3 ; //LED3每隔200ms亮
delay_ms(200) ;
}
}
程序仿真下载后:LED3每隔200ms闪烁,LED1每隔500ms闪烁
上一篇:USART_ClearITPendingBith和 USART_ClearFlag的区别
下一篇:STM32F1x系列——定时器中断
推荐阅读
史海拾趣
FOCI Fiber Optic Communications Inc.公司发展的五个故事
故事一:成立与初创期
FOCI Fiber Optic Communications Inc.(以下简称FOCI)成立于1995年,由台湾工业技术研究院(工研院)的核心团队创立。这家公司自诞生之初就专注于光纤互连技术的发展,致力于设计、制造和销售高性能的光纤组件和集成模块。初创时期,FOCI凭借其对光纤技术的深刻理解和市场需求的敏锐洞察,逐步在市场上站稳脚跟,成为光纤通信领域的一股新兴力量。
故事二:技术创新与突破
FOCI在发展过程中,始终将技术创新视为企业发展的核心驱动力。公司不断投入研发资源,在光纤耦合器、PLC分配器、薄膜粗波分复用/密集波分复用以及多光纤电缆组装模块等领域取得了多项技术突破。这些技术创新不仅提升了产品的性能和质量,还大幅降低了生产成本,使得FOCI的产品在市场上更具竞争力。
故事三:与奇景光电的战略合作
2024年,半导体解决方案无晶圆厂巨头奇景光电(Himax Technologies)宣布向FOCI投入5.22亿新台币(折合约为1610万美元)的资金。这次投资不仅是两家公司财务合作的结果,更是双方在技术融合与应用拓展上迈出的重要一步。根据合作协议,FOCI的共封装光学器件(CPO)与奇景光电的晶圆级光学器件(WLO)将被整合到多芯片模块中,这些模块将广泛应用于高性能计算、云服务器、人工智能等多个领域。
故事四:全球化布局与市场拓展
随着全球光纤通信市场的快速发展,FOCI积极实施全球化战略,不断拓展国际市场。公司通过参加国际展会、建立海外销售网络等方式,将高性能的光纤组件和集成模块带到了世界各地。特别是在光纤到户(FTTH)和云计算领域,FOCI的产品因其高效、低成本的特性而广受欢迎,成功在全球市场占据了一席之地。
故事五:子公司设立与多元化发展
为了进一步拓展业务领域和市场份额,FOCI在国内设立了多家子公司,如中山上诠通信科技有限公司等。这些子公司不仅继承了FOCI在光纤通信领域的深厚底蕴和技术优势,还根据当地市场需求进行了产品和服务的本地化调整。同时,FOCI还积极探索多元化发展路径,涉足光纤高速数据传输技术开发设计、研发和咨询等多个领域,为公司未来的持续发展奠定了坚实基础。
近年来,电子行业面临着技术升级、市场变革等多重挑战。AMICC积极应对这些挑战,不断调整战略和业务模式。公司加大了对新兴技术的研发投入,加快了产品更新换代的速度。同时,AMICC还加强了与产业链上下游企业的合作,共同应对市场变化。这些措施使AMICC在行业中保持了领先地位,实现了持续稳健的发展。
海曼电子深知人才是企业发展的根本动力。因此,公司一直将人才培养和团队建设放在重要位置。公司建立了完善的人才培养体系,通过内部培训、外部交流等方式,不断提升员工的专业技能和综合素质。同时,公司还注重营造积极向上的企业文化氛围,鼓励员工创新思维和团队合作。这些举措不仅吸引了大量优秀人才加入海曼电子的大家庭,还为公司的持续发展提供了强有力的保障。
背景:随着公司实力的不断增强,GardTec开始积极拓展新的市场领域,提升品牌影响力。
发展:公司不仅在风扇配件市场保持领先地位,还逐步将业务拓展到更广泛的电子配件领域。同时,GardTec积极参加各类行业展会和交流活动,提升品牌知名度和影响力。
影响:通过市场拓展和品牌影响力的提升,GardTec在电子行业中的地位更加稳固,为公司的长期发展奠定了坚实的基础。同时,这也为公司的合作伙伴和客户带来了更多的机遇和价值。
ETC2公司深知服务对于企业的重要性,因此不断优化服务体系以提升竞争力。他们建立了完善的客户服务体系,为用户提供24小时在线客服支持,确保用户在使用过程中遇到问题能够及时得到解决。此外,ETC2公司还定期举办用户培训活动,帮助用户更好地了解和使用ETC设备。这些举措不仅提高了用户的满意度和忠诚度,也为ETC2公司赢得了更多的市场份额。
随着数字化时代的到来,Aptiv积极拥抱数字化转型,通过引入先进的信息技术和管理系统,提升了企业的运营效率和市场竞争力。例如,公司向汽车行业某公司发出EDI对接邀请,计划通过EDI系统实现双方的数据共享和业务协同,从而提高了工作效率和下单准确性。这种数字化转型不仅有助于Aptiv在激烈的市场竞争中保持领先地位,还为整个电子行业的数字化转型提供了有益的借鉴和参考。
这五个故事展示了Aptiv公司在电子行业中的发展历程和成就,从技术创新到全球布局、创新合作、社会责任以及数字化转型等方面,都体现了公司的实力和担当。Aptiv以其卓越的技术实力和市场表现,成为了电子行业中一颗璀璨的明星。
开关电源的PCB设计规范 在任何开关电源设计中,PCB板的物理设计都是最后一个环节,如果设计方法不当,PCB可能会辐射过多的电磁干扰,造成电源工作不稳定,以下针对各个步骤中所需注意的事项进行分析: 一、从原理图到PCB的设计流程 建立元件参数- ...… 查看全部问答∨ |
|
我在用EPSON TSP700的ESC\\POS 指令编程时只要碰到打印位置设置的指令就出不来,不是打印出奇怪字符就是没效果,比如在页模式下打印区域的设置就老出不来,很是郁闷。 请哪位做过的高手给我提示一二,最好能给个例子 ...… 查看全部问答∨ |
|
我的嵌入式产品用的DM9000a, 用一台电脑能ping 通(偶尔丢包),不断电情况下,切换成另一台电脑,有时能ping通,有时ping 不通,并且10M/100M以及LINK灯灭,怎么回事啊?谢谢 … 查看全部问答∨ |
|
请问一下,怎么判断ARM中断返回,有没有判断中断已经返回的语句!! 我是利用中断来做实时性,我想抓住中断返回的那一时刻。 各位大侠能否用QQ交流一下: 214740556… 查看全部问答∨ |
|
压力传感器0-1mpa 输出电流4-20ma 求0.6ma对应的电流 压力传感器0-1mpa 输出电流4-20ma 求0.6ma对应的电流 有计算公式没 是线性关系吗? 有没有人做过类似的采集… 查看全部问答∨ |
;---------------------------------------------------------------------------------- ;常量定义 ;---------------------------------------------------------------------------------- year equ 2004 ;当前的年月日 month equ 6 ;当写入F ...… 查看全部问答∨ |