历史上的今天
返回首页

历史上的今天

今天是:2024年09月19日(星期四)

正在发生

2019年09月19日 | 第32章 TIM—高级定时器—零死角玩转STM32-F429系列

2019-09-19 来源:eefocus

本章参考资料:《STM32F4xx 中文参考手册》、《STM32F4xx规格书》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》。


学习本章时,配合《STM32F4xx 中文参考手册》高级定时器章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。


特别说明,本书内容是以STM32F42x系列控制器资源讲解。


上一章我们讲解了基本定时器功能,基本定时器功能简单,理解起来也容易。高级控制定时器包含了通用定时器的功能,再加上已经有了基本定时器基础的基础,如果再把通用定时器单独拿出来讲那内容有很多重复,实际效果不是很好,所以通用定时器不作为独立章节讲解,可以在理解了高级定时器后参考《STM32F4xx中文参考手册》通用定时器章节内容理解即可。


32.1 高级控制定时器

高级控制定时器(TIM1和TIM8)和通用定时器在基本定时器的基础上引入了外部引脚,可以输入捕获和输出比较功能。高级控制定时器比通用定时器增加了可编程死区互补输出、重复计数器、带刹车(断路)功能,这些功能都是针对工业电机控制方面。这几个功能在本书不做详细的介绍,主要介绍常用的输入捕获和输出比较功能。


高级控制定时器时基单元包含一个16位自动重载计数器ARR,一个16位的计数器CNT,可向上/下计数,一个16位可编程预分频器PSC,预分频器时钟源有多种可选,有内部的时钟、外部时钟。还有一个8位的重复计数器RCR,这样最高可实现40位的可编程定时。


STM32F429IGT6的高级/通用定时器的IO分配具体见表 01。配套开发板因为IO资源紧缺,定时器的IO很多已经复用它途,故下表中的IO只有部分可用于定时器的实验。


表 01 高级控制和通用定时器通道引脚分布

image.png?imageView2/2/w/550

32.2 高级控制定时器功能框图

高级控制定时器功能框图包含了高级控制定时器最核心内容,掌握了功能框图,对高级控制定时器就有一个整体的把握,在编程时思路就非常清晰,见图 01。


关于图中带阴影的寄存器,即带有影子寄存器,指向左下角的事件更新图标以及指向右上角的中断和DMA输出标志在上一章已经做了解释,这里就不再介绍。


图 01 高级控制定时器功能框图


1.    ①时钟源

高级控制定时器有四个时钟源可选:


    内部时钟源CK_INT


    外部时钟模式1:外部输入引脚TIx(x=1,2,3,4)


    外部时钟模式2:外部触发输入ETR


    内部触发输入


内部时钟源(CK_INT)

内部时钟CK_INT即来自于芯片内部,等于180M,一般情况下,我们都是使用内部时钟。当从模式控制寄存器TIMx_SMCR的SMS位等于000时,则使用内部时钟。


外部时钟模式1

图 02 外部时钟模式1框图


①:时钟信号输入引脚


当使用外部时钟模式1的时候,时钟信号来自于定时器的输入通道,总共有4个,分别为TI1/2/3/4,即TIMx_CH1/2/3/4。具体使用哪一路信号,由TIM_CCMx的位CCxS[1:0]配置,其中CCM1控制TI1/2,CCM2控制TI3/4。


②:滤波器


如果来自外部的时钟信号的频率过高或者混杂有高频干扰信号的话,我们就需要使用滤波器对ETRP信号重新采样,来达到降频或者去除高频干扰的目的,具体的由TIMx_CCMx的位ICxF[3:0]配置。


③:边沿检测


边沿检测的信号来自于滤波器的输出,在成为触发信号之前,需要进行边沿检测,决定是上升沿有效还是下降沿有效,具体的由TIMx_CCER的位CCxP和CCxNP配置。


④:触发选择


当使用外部时钟模式1时,触发源有两个,一个是滤波后的定时器输入1(TI1FP1)和滤波后的定时器输入2(TI2FP2),具体的由TIMxSMCR的位TS[2:0]配置。


⑤:从模式选择


选定了触发源信号后,最后我们需把信号连接到TRGI引脚,让触发信号成为外部时钟模式1的输入,最终等于CK_PSC,然后驱动计数器CNT计数。具体的配置TIMx_SMCR的位SMS[2:0]为000即可选择外部时钟模式1。


⑥:使能计数器


经过上面的5个步骤之后,最后我们只需使能计数器开始计数,外部时钟模式1的配置就算完成。使能计数器由TIMx_CR1的位CEN配置。


外部时钟模式2

图 03 外部时钟模式2框图


①:时钟信号输入引脚


当使用外部时钟模式2的时候,时钟信号来自于定时器的特定输入通道TIMx_ETR,只有1个。


②:外部触发极性


来自ETR引脚输入的信号可以选择为上升沿或者下降沿有效,具体的由TIMx_SMCR的位ETP配置。


③:外部触发预分频器


由于ETRP的信号的频率不能超过TIMx_CLK(180M)的1/4,当触发信号的频率很高的情况下,就必须使用分频器来降频,具体的由 TIMx_SMCR的位ETPS[1:0]配置。


④:滤波器


如果ETRP的信号的频率过高或者混杂有高频干扰信号的话,我们就需要使用滤波器对ETRP信号重新采样,来达到降频或者去除高频干扰的目的。具体的由TIMx_SMCR的位ETF[3:0]配置,其中的fDTS是由内部时钟CK_INT分频得到,具体的由TIMx_CR1的位CKD[1:0]配置。


⑤:从模式选择


经过滤波器滤波的信号连接到ETRF引脚后,触发信号成为外部时钟模式2的输入,最终等于CK_PSC,然后驱动计数器CNT计数。具体的配置TIMx_SMCR的位ECE为1即可选择外部时钟模式2。


⑥:使能计数器


经过上面的5个步骤之后,最后我们只需使能计数器开始计数,外部时钟模式2的配置就算完成。使能计数器由TIMx_CR1的位CEN配置。


内部触发输入

内部触发输入是使用一个定时器作为另一个定时器的预分频器。硬件上高级控制定时器和通用定时器在内部连接在一起,可以实现定时器同步或级联。主模式的定时器可以对从模式定时器执行复位、启动、停止或提供时钟。高级控制定时器和部分通用定时器(TIM2至TIM5)可以设置为主模式或从模式,TIM9和TIM10可设置为从模式。


图 04为主模式定时器(TIM1)为从模式定时器(TIM2)提供时钟,即TIM1用作TIM2的预分频器。


图 04 TIM1用作TIM2的预分频器


2.    ②控制器

高级控制定时器控制器部分包括触发控制器、从模式控制器以及编码器接口。触发控制器用来针对片内外设输出触发信号,比如为其它定时器提供时钟和触发DAC/ADC转换。


编码器接口专门针对编码器计数而设计。从模式控制器可以控制计数器复位、启动、递增/递减、计数。


3.    ③时基单元

图 05 高级定时器时基单元


高级控制定时器时基单元包括四个寄存器,分别是计数器寄存器(CNT)、预分频器寄存器(PSC)、自动重载寄存器(ARR)和重复计数器寄存器(RCR)。其中重复计数器RCR是高级定时器独有,通用和基本定时器没有。前面三个寄存器都是16位有效,TIMx_RCR寄存器是8位有效。


预分频器PSC

预分频器PSC,有一个输入时钟CK_PSC和一个输出时钟CK_CNT。输入时钟CK_PSC就是上面时钟源的输出,输出CK_CNT则用来驱动计数器CNT计数。通过设置预分频器PSC的值可以得到不同的CK_CNT,实际计算为:fCK_CNT等于fCK_PSC/(PSC[15:0]+1),可以实现1至65536分频。


计数器CNT

高级控制定时器的计数器有三种计数模式,分别为递增计数模式、递减计数模式和递增/递减(中心对齐)计数模式。


(1)    递增计数模式下,计数器从0开始计数,每来一个CK_CNT脉冲计数器就增加1,直到计数器的值与自动重载寄存器ARR值相等,然后计数器又从0开始计数并生成计数器上溢事件,计数器总是如此循环计数。如果禁用重复计数器,在计数器生成上溢事件就马上生成更新事件(UEV);如果使能重复计数器,每生成一次上溢事件重复计数器内容就减1,直到重复计数器内容为0时才会生成更新事件。


(2)    递减计数模式下,计数器从自动重载寄存器ARR值开始计数,每来一个CK_CNT脉冲计数器就减1,直到计数器值为0,然后计数器又从自动重载寄存器ARR值开始递减计数并生成计数器下溢事件,计数器总是如此循环计数。如果禁用重复计数器,在计数器生成下溢事件就马上生成更新事件;如果使能重复计数器,每生成一次下溢事件重复计数器内容就减1,直到重复计数器内容为0时才会生成更新事件。


(3)    中心对齐模式下,计数器从0开始递增计数,直到计数值等于(ARR-1)值生成计数器上溢事件,然后从ARR值开始递减计数直到1生成计数器下溢事件。然后又从0开始计数,如此循环。每次发生计数器上溢和下溢事件都会生成更新事件。


自动重载寄存器ARR

自动重载寄存器ARR用来存放与计数器CNT比较的值,如果两个值相等就递减重复计数器。可以通过TIMx_CR1寄存器的ARPE位控制自动重载影子寄存器功能,如果ARPE位置1,自动重载影子寄存器有效,只有在事件更新时才把TIMx_ARR值赋给影子寄存器。如果ARPE位为0,则修改TIMx_ARR值马上有效。


重复计数器RCR

在基本/通用定时器发生上/下溢事件时直接就生成更新事件,但对于高级控制定时器却不是这样,高级控制定时器在硬件结构上多出了重复计数器,在定时器发生上溢或下溢事件是递减重复计数器的值,只有当重复计数器为0时才会生成更新事件。在发生N+1个上溢或下溢事件(N为RCR的值)时产生更新事件。


4.    ④输入捕获


图 06 输入捕获功能框图


输入捕获可以对输入的信号的上升沿,下降沿或者双边沿进行捕获,常用的有测量输入信号的脉宽和测量PWM输入信号的频率和占空比这两种。


输入捕获的大概的原理就是,当捕获到信号的跳变沿的时候,把计数器CNT的值锁存到捕获寄存器CCR中,把前后两次捕获到的CCR寄存器中的值相减,就可以算出脉宽或者频率。如果捕获的脉宽的时间长度超过你的捕获定时器的周期,就会发生溢出,这个我们需要做额外的处理。


①输入通道

需要被测量的信号从定时器的外部引脚TIMx_CH1/2/3/4进入,通常叫TI1/2/3/4,在后面的捕获讲解中对于要被测量的信号我们都以TIx为标准叫法。


②输入滤波器和边沿检测器

当输入的信号存在高频干扰的时候,我们需要对输入信号进行滤波,即进行重新采样,根据采样定律,采样的频率必须大于等于两倍的输入信号。比如输入的信号为1M,又存在高频的信号干扰,那么此时就很有必要进行滤波,我们可以设置采样频率为2M,这样可以在保证采样到有效信号的基础上把高于2M的高频干扰信号过滤掉。


滤波器的配置由CR1寄存器的位CKD[1:0]和CCMR1/2的位ICxF[3:0]控制。从ICxF位的描述可知,采样频率fSAMPLE可以由fCK_INT和fDTS分频后的时钟提供,其中是fCK_INT内部时钟,fDTS是fCK_INT经过分频后得到的频率,分频因子由CKD[1:0]决定,可以是不分频,2分频或者是4分频。


边沿检测器用来设置信号在捕获的时候是什么边沿有效,可以是上升沿,下降沿,或者是双边沿,具体的由CCER寄存器的位CCxP和CCxNP决定。


③捕获通道

捕获通道就是图中的IC1/2/3/4,每个捕获通道都有相对应的捕获寄存器CCR1/2/3/4,当发生捕获的时候,计数器CNT的值就会被锁存到捕获寄存器中。


这里我们要搞清楚输入通道和捕获通道的区别,输入通道是用来输入信号的,捕获通道是用来捕获输入信号的通道,一个输入通道的信号可以同时输入给两个捕获通道。比如输入通道TI1的信号经过滤波边沿检测器之后的TI1FP1和TI1FP2可以进入到捕获通道IC1和IC2,其实这就是我们后面要讲的PWM输入捕获,只有一路输入信号(TI1)却占用了两个捕获通道(IC1和IC2)。当只需要测量输入信号的脉宽时候,用一个捕获通道即可。输入通道和捕获通道的映射关系具体由寄存器CCMRx的位CCxS[1:0]配置。


④的预分频器

ICx的输出信号会经过一个预分频器,用于决定发生多少个事件时进行一次捕获。具体的由寄存器CCMRx的位ICxPSC配置,如果希望捕获信号的每一个边沿,则不分频。


⑤捕获寄存器

经过预分频器的信号ICxPS是最终被捕获的信号,当发生捕获时(第一次),计数器CNT的值会被锁存到捕获寄存器CCR中,还会产生CCxI中断,相应的中断位CCxIF(在SR寄存器中)会被置位,通过软件或者读取CCR中的值可以将CCxIF清0。如果发生第二次捕获(即重复捕获:CCR 寄存器中已捕获到计数器值且 CCxIF 标志已置 1),则捕获溢出标志位CCxOF(在SR寄存器中)会被置位,CCxOF只能通过软件清零。


5.    ⑤输出比较

图 07 输出比较功能框图


输出比较就是通过定时器的外部引脚对外输出控制信号,有冻结、将通道X(x=1,2,3,4)设置为匹配时输出有效电平、将通道X设置为匹配时输出无效电平、翻转、强制变为无效电平、强制变为有效电平、PWM1和PWM2这八种模式,具体使用哪种模式由寄存器CCMRx的位OCxM[2:0]配置。其中PWM模式是输出比较中的特例,使用的也最多。


①比较寄存器

当计数器CNT的值跟比较寄存器CCR的值相等的时候,输出参考信号OCxREF的信号的极性就会改变,其中OCxREF=1(高电平)称之为有效电平,OCxREF=0(低电平)称之为无效电平,并且会产生比较中断CCxI,相应的标志位CCxIF(SR寄存器中)会置位。然后OCxREF再经过一系列的控制之后就成为真正的输出信号OCx/OCxN。


②死区发生器

在生成的参考波形OCxREF的基础上,可以插入死区时间,用于生成两路互补的输出信号OCx和OCxN,死区时间的大小具体由BDTR寄存器的位DTG[7:0]配置。死区时间的大小必须根据与输出信号相连接的器件及其特性来调整。下面我们简单举例说明下带死区的PWM信号的应用,我们以一个板桥驱动电路为例。

图 08 半桥驱动电路


在这个半桥驱动电路中,Q1导通,Q2截止,此时我想让Q1截止Q2导通,肯定是要先让Q1截止一段时间之后,再等一段时间才让Q2导通,那么这段等待的时间就称为死区时间,因为Q1关闭需要时间(由MOS管的工艺决定)。如果Q1关闭之后,马上打开Q2,那么此时一段时间内相当于Q1和Q2都导通了,这样电路会短路。


图 09是针对上面的半桥驱动电路而画的带死区插入的PWM信号,图中的死区时间要根据MOS管的工艺来调节。

图 09 带死区插入的互补输出


③输出控制


图 010 输出比较(通道1~3)的输出控制框图


在输出比较的输出控制中,参考信号OCxREF在经过死区发生器之后会产生两路带死区的互补信号OCx_DT和OCxN_DT(通道1~3才有互补信号,通道4没有,其余跟通道1~3一样),这两路带死区的互补信号然后就进入输出控制电路,如果没有加入死区控制,那么进入输出控制电路的信号就直接是OCxREF。


进入输出控制电路的信号会被分成两路,一路是原始信号,一路是被反向的信号,具体的由寄存器CCER的位CCxP和CCxNP控制。经过极性选择的信号是否由OCx引脚输出到外部引脚CHx/CHxN则由寄存器CCER的位CxE/CxNE配置。


如果加入了断路(刹车)功能,则断路和死区寄存器BDTR的MOE、OSSI和OSSR这三个位会共同影响输出的信号。


④输出引脚

输出比较的输出信号最终是通过定时器的外部IO来输出的,分别为CH1/2/3/4,其中前面三个通道还有互补的输出通道CH1/2/3N。更加详细的IO说明还请查阅相关的数据手册。


6.    ⑥断路功能

断路功能就是电机控制的刹车功能,使能断路功能时,根据相关控制位状态修改输出信号电平。在任何情况下,OCx和OCxN输出都不能同时为有效电平,这关系到电机控制常用的H桥电路结构原因。


断路源可以是时钟故障事件,由内部复位时钟控制器中的时钟安全系统(CSS)生成,也可以是外部断路输入IO,两者是或运算关系。


系统复位启动都默认关闭断路功能,将断路和死区寄存器(TIMx_BDTR)的BKE为置1,使能断路功能。可通过TIMx_BDTR 寄存器的BKP位设置设置断路输入引脚的有效电平,设置为1时输入BRK为高电平有效,否则低电平有效。


发送断路时,将产生以下效果:


    TIMx_BDTR 寄存器中主输出模式使能(MOE)位被清零,输出处于无效、空闲或复位状态;


    根据相关控制位状态控制输出通道引脚电平;当使能通道互补输出时,会根据情况自动控制输出通道电平;


    将TIMx_SR 寄存器中的 BIF位置 1,并可产生中断和DMA传输请求。


    如果 TIMx_BDTR 寄存器中的 自动输出使能(AOE)位置 1,则MOE位会在发生下一个UEV事件时自动再次置 1。


1.1 输入捕获应用

输入捕获一般应用在两个方面,一个方面是脉冲跳变沿时间测量,另一方面是PWM输入测量。


1.1.1 测量脉宽或者频率


图 011 脉宽/频率测量示意图


1.    测量频率

当捕获通道TIx上出现上升沿时,发生第一次捕获,计数器CNT的值会被锁存到捕获寄存器CCR中,而且还会进入捕获中断,在中断服务程序中记录一次捕获(可以用一个标志变量来记录),并把捕获寄存器中的值读取到value1中。当出现第二次上升沿时,发生第二次捕获,计数器CNT的值会再次被锁存到捕获寄存器CCR中,并再次进入捕获中断,在捕获中断中,把捕获寄存器的值读取到value3中,并清除捕获记录标志。利用value3和value1的差值我们就可以算出信号的周期(频率)。


2.    测量脉宽

当捕获通道TIx上出现上升沿时,发生第一次捕获,计数器CNT的值会被锁存到捕获寄存器CCR中,而且还会进入捕获中断,在中断服务程序中记录一次捕获(可以用一个标志变量来记录),并把捕获寄存器中的值读取到value1中。然后把捕获边沿改变为下降沿捕获,目的是捕获后面的下降沿。当下降沿到来的时候,发生第二次捕获,计数器CNT的值会再次被锁存到捕获寄存器CCR中,并再次进入捕获中断,在捕获中断中,把捕获寄存器的值读取到value3中,并清除捕获记录标志。然后把捕获边沿设置为上升沿捕获。


在测量脉宽过程中需要来回的切换捕获边沿的极性,如果测量的脉宽时间比较长,定时器就会发生溢出,溢出的时候会产生更新中断,我们可以在中断里面对溢出进行记录处理。


1.1.2 PWM输入模式

测量脉宽和频率还有一个更简便的方法就是使用PWM输入模式。与上面那种只使用一个捕获寄存器测量脉宽和频率的方法相比,PWM输入模式需要占用两个捕获寄存器。


图 012 输入通道和捕获通道的关系映射图


当使用PWM输入模式的时候,因为一个输入通道(TIx)会占用两个捕获通道(ICx),所以一个定时器在使用PWM输入的时候最多只能使用两个输入通道(TIx)。


我们以输入通道TI1工作在PWM输入模式为例来讲解下具体的工作原理,其他通道以此类推即可。


PWM信号由输入通道TI1进入,因为是PWM输入模式的缘故,信号会被分为两路,一路是TI1FP1,另外一路是TI2FP2。其中一路是周期,另一路是占空比,具体哪一路信号对应周期还是占空比,得从程序上设置哪一路信号作为触发输入,作为触发输入的哪一路信号对应的就是周期,另一路就是对应占空比。作为触发输入的那一路信号还需要设置极性,是上升沿还是下降沿捕获,一旦设置好触发输入的极性,另外一路硬件就会自动配置为相反的极性捕获,无需软件配置。一句话概括就是:选定输入通道,确定触发信号,然后设置触发信号的极性即可,因为是PWM输入的缘故,另一路信号则由硬件配置,无需软件配置。


当使用PWM输入模式的时候必须将从模式控制器配置为复位模式(配置寄存器SMCR的位SMS[2:0]来实现),即当我们启动触发信号开始进行捕获的时候,同时把计数器CNT复位清零。


下面我们以一个更加具体的时序图来分析下PWM输入模式。


图 013 PWM输入模式时序


PWM信号由输入通道TI1进入,配置TI1FP1为触发信号,上升沿捕获。当上升沿的时候IC1和IC2同时捕获,计数器CNT清零,到了下降沿的时候,IC2捕获,此时计数器CNT的值被锁存到捕获寄存器CCR2中,到了下一个上升沿的时候,IC1捕获,计数器CNT的值被锁存到捕获寄存器CCR1中。其中CCR2测量的是脉宽,CCR1测量的是周期。


从软件上来说,用PWM输入模式测量脉宽和周期更容易,付出的代价是需要占用两个捕获寄存器。


1.2 输出比较应用

输出比较模式总共有8种,具体的由寄存器CCMRx的位OCxM[2:0]配置。我们这里只讲解最常用的PWM模式,其他几种模式具体的看数据手册即可。


1.2.1 PWM输出模式

PWM输出就是对外输出脉宽(即占空比)可调的方波信号,信号频率由自动重装寄存器ARR的值决定,占空比由比较寄存器CCR的值决定。


PWM模式分为两种,PWM1和PWM2,总得来说是差不多,就看你怎么用而已,具体的区别见表格 01。


表格 01 PWM1与PWM2模式的区别

image.png?imageView2/2/w/550

下面我们以PWM1模式来讲解,以计数器CNT计数的方向不同还分为边沿对齐模式和中心对齐模式。PWM信号主要都是用来控制电机,一般的电机控制用的都是边沿对齐模式,FOC电机一般用中心对齐模式。我们这里只分析这两种模式在信号感官上(即信号波形)的区别,具体在电机控制中的区别不做讨论,到了你真正需要使用的时候就会知道了。


1.     PWM边沿对齐模式

在递增计数模式下,计数器从 0 计数到自动重载值( TIMx_ARR 寄存器的内容),然后重新

从 0 开始计数并生成计数器上溢事件

图 014 PWM1模式的边沿对齐波形


在边沿对齐模式下,计数器CNT只工作在一种模式,递增或者递减模式。这里我们以CNT工作在递增模式为例,在中,ARR=8,CCR=4,CNT从0开始计数,当CNT

2.    PWM中心对齐模式

图 015 PWM1模式的中心对齐波形


在中心对齐模式下,计数器CNT是工作做递增/递减模式下。开始的时候,计数器CNT从 0 开始计数到自动重载值减1(ARR-1),生成计数器上溢事件;然后从自动重载值开始向下计数到 1 并生成计数器下溢事件。之后从0 开始重新计数。


图 015是PWM1模式的中心对齐波形,ARR=8,CCR=4。第一阶段计数器CNT工作在递增模式下,从0开始计数,当CNTCCR时,OCxREF为无效的低电平,当CCR=>CNT>=1时,OCxREF为有效的高电平。


在波形图上我们把波形分为两个阶段,第一个阶段是计数器CNT工作在递增模式的波形,这个阶段我们又分为①和②两个阶段,第二个阶段是计数器CNT工作在递减模式的波形,这个阶段我们又分为③和④两个阶段。要说中心对齐模式下的波形有什么特征的话,那就是①和③阶段的时间相等,②和④阶段的时间相等。


中心对齐模式又分为中心对齐模式1/2/3 三种,具体由寄存器CR1位CMS[1:0]配置。具体的区别就是比较中断中断标志位CCxIF在何时置1:中心模式1在CNT递减计数的时候置1,中心对齐模式2在CNT递增计数时置1,中心模式3在CNT递增和递减计数时都置1。


1.3 定时器初始化结构体详解

标准库函数对定时器外设建立了四个初始化结构体,分别为时基初始化结构体TIM_TimeBaseInitTypeDef、输出比较初始化结构体TIM_OCInitTypeDef、输入捕获初始化结构体TIM_ICInitTypeDef和断路和死区初始化结构体TIM_BDTRInitTypeDef,高级控制定时器可以用到所有初始化结构体,通用定时器不能使用TIM_BDTRInitTypeDef结构体,基本定时器只能使用时基结构体。初始化结构体成员用于设置定时器工作环境参数,并由定时器相应初始化配置函数调用,最终这些参数将会写入到定时器相应的寄存器中。

推荐阅读

史海拾趣

AVAGO公司的发展小趣事

AVAGO公司(现更名为Broadcom)的创业故事始于上世纪八十年代。当时,几位工程师看到半导体行业的巨大潜力,决定创立一家公司来专注于高性能模拟半导体的研发。初始阶段,公司面临着资金短缺、市场竞争激烈等挑战,但凭借团队的技术实力和对市场的敏锐洞察,他们成功开发出了几款性能卓越的半导体产品,并逐渐在市场上获得了认可。

ARCOLECTRICSWITCHES公司的发展小趣事

在电子行业的初期,ARCOLECTRIC SWITCHES公司以其卓越的技术研发能力崭露头角。公司研发团队成功开发出一种新型开关技术,具有更高的稳定性和耐用性,迅速在市场上获得了广泛认可。这一技术突破不仅为公司带来了丰厚的利润,还奠定了其在电子行业的重要地位。随着技术的不断升级和完善,ARCOLECTRIC SWITCHES公司逐渐发展成为一家技术领先、市场影响力强大的企业。

富捷(FOJAN)公司的发展小趣事

富捷电子在积极拓展国内外市场的同时,也注重品牌建设和市场推广。公司建立了遍及全球的销售网络,产品广泛应用于微电子、计算机、光伏、新能源、车载等众多新兴和高科技领域。通过参加国内外知名展会、举办技术交流会等方式,富捷电子不断提升品牌知名度和影响力。此外,公司还积极与上下游企业建立战略合作关系,共同推动产业链协同发展。

意瑞(COSEMITECH)公司的发展小趣事

随着业务的不断发展和市场的不断扩大,意瑞半导体也积极寻求外部投资和战略合作。公司先后获得了得彼投资、架桥投资、深创投等机构超2亿元的股权投资,为公司的持续发展提供了有力的资金保障。此外,意瑞半导体还积极参与各种行业活动和展览,与业界同仁进行深入交流和合作,共同推动半导体行业的发展。

以上五个故事素材可以根据需要进一步扩展和细化,以形成完整的、具有吸引力的电子行业意瑞半导体公司的发展故事。

Hamlin ( Littelfuse )公司的发展小趣事

在技术创新方面,意瑞半导体始终保持着高度的热情和投入。其研发团队在磁传感器芯片领域取得了显著成果,连续两年荣获闵行区的“讲理想、比贡献、奋力实现中国梦”活动的创新团队奖。此外,公司还获得了高新技术企业证书,并多次获得上海市科委的上海市科技型中小企业技术创新认可,证明了其在技术创新方面的实力。

E-San Electronic Co Ltd公司的发展小趣事

E-San Electronic Co Ltd非常重视人才培养和团队建设。公司建立了完善的培训机制,为员工提供了各种专业技能和综合素质的培训机会。同时,公司还注重员工的职业规划和晋升通道建设,为员工提供了广阔的发展空间和良好的职业前景。这些措施不仅提升了员工的综合素质和业务能力,也为企业的发展注入了源源不断的活力。

问答坊 | AI 解惑

如何去鉴别mobile不同手机及型号?

如何去鉴别mobile不同手机及型号? 要现实功能: 我做了一个软件,想让该软件只能运行在一款手机上(比如:多普达s600),其他手机上安装使用时会提示,\"该软件只能在多普达S600上运行\".请问怎么实现这个功能? 也就是如何驱分不同型号的手机?…

查看全部问答>

STM32的DMA有没有这个功能?

用在ADC上,一个通道即可,我是想这样,stm32在干别的事,DMA接收AD的数据,接收到一定的数量比如1K,stm32读回来做处理,然后dma继续接收,如有这个功能求个程序,谢谢 感觉应该有这个功能,好像不少ARM都有,折腾一下午没成功,adc用9M的时 ...…

查看全部问答>

如何将一个结构体放到(u8)数组中

我在程序中定义了很多的结构体,现在我需要将这些结构体的成员放到一个u8 TxBuffer[]中,而且,根据不同的需要,放不同的结构体,然后通过串口发送出去。可是我遇到一个问题,如何将定义各不相同的结构体,放到这个发送缓存数组中去!!!! ...…

查看全部问答>

PIC单片机仿真时遇上的怪问题

我用汇骗学编PIC的程序,能通过编译,也能正常仿真,可就是在File Registers窗口中观察如(PROTD)的值时,发现PROTD的值不会随程序( MOVLW 0FFH,     MOVWF   PORTD )的运行而变化,是我的程序有问题还是我哪没设置 ...…

查看全部问答>

PIC单片机写24LC16的问题

各位大侠好:我现在用PIC单片机通过IIC总线读写一个EEPROM (24LC16), 读写程序如下: void Iic_EepromRd(BYTE chip,BYTE address,BYTE *p,BYTE num) {               StartI2C();//启动总线   & ...…

查看全部问答>

msp430g2553的I/O口问题

msp430g2553的I/O口设为高电平输出,有时实测出来只有1.3V,有时有3.5V…

查看全部问答>

【SensorTag】熟悉SensorTag硬件

本帖最后由 southwolf1813 于 2013-12-30 17:33 编辑 必须承认 TI的WIKI是个无穷的宝库…… 要熟悉SensorTag硬件 首先得找到它的原理图。可以用 SensorTag Schematic 作为关键词搜索, 在TI WIKI里可以找到。 http://processors.wiki.ti.com/in ...…

查看全部问答>

华为资料网上收集集合共享

replyreload += \',\' + 1781499;相信大家多多少少在网上看到或下载到各式各样华为的资料,现在经收集,有一系列华为资料现在与大家分享,希望大家能喜欢。这些资料在网上是都能收集到的,现在做一个集合,方便大家学习。希望大家回帖,故做了回复 ...…

查看全部问答>

手机硬件测试这个岗位怎么样?

本帖最后由 xiongpb 于 2015-10-10 18:42 编辑 这个岗位主要是干什么的?发展空间怎么样? 看到这么多好心人的回复,我先感谢了。现在正打算出去找工作,但是对于找工作我还是有点迷茫,不知道我能找到什么样的工作,或者说什么样适合我,我再说 ...…

查看全部问答>