1、
2、
3、
还有两种形式操控功用:从形式操控和主形式操控。
一、 框图
让咱们看下手册,一开始是守时器的框图,这儿边简直包含了一切守时器的信息,您要是能看了解,那么接下来就不必再看其他了…
为了便利的看图,我对里边呈现的名词和符号做个注解:
ETRP:分频后的外部触发输入 ETRF:滤波后的外部触发输入
ITRx:内部触发x(由其他的守时器触发)
TI1F_ED:TI1的边缘检测器。
TI1FP1/2:滤波后守时器1/2的输入
TRGI:触发输入
CK_PSC:应该叫分频器时钟输入
CK_CNT:守时器时钟。(守时周期的核算就靠它)
TIMx_CHx:TIMER的输入脚
OCx:输出捕获x
关于框图还有以下几点要留意:
1、
有阴影的寄存器,表明在物理上这个寄存器对应2个寄存器,一个是程序员能够写入或读出的寄存器,称为preload register(预装载寄存器),另一个是程序员看不见的、但在操作中真实起作用的寄存器,称为shadow register(影子寄存器);(详细请参阅版主博客http://blog.ednchina.com/STM32/401461/message.aspx)
2、
在ETR何TIx输入端有个输入滤波器,它的作用是以采样频率Fdts来采样N次进行滤波的。(详细也请参阅版主博客http://blog.ednchina.com/STM32/263170/message.aspx)
3、
1、
也便是挑选CK_INT做时钟,这个简略,但是有一点要留意,守时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器,当APB1的预分频系数为1时,这个倍频器不起作用,守时器的时钟频率等于APB1的频率;当
例如AHP 72M,APB12分频36M,那么TIMER便是APB1的2倍频,即72M。
怎样挑选时钟形式1呢?只要将SMCR中SMS[2:0]弄成000就好了
SMCR
15
ETP |
ECE |
ETPS[1:0] |
ETF[3:0] |
MSM |
TS[2:0] |
|
SMS[2:0] |
2、
这个比较费事,时钟源挑选的其实便是TRGI(触发输入),但触发输入挑选挺多的,共8个……。看框图,他们是:ITRx、TI1F_ED、
TI1FP1、TI2FP2、ETRF
ITRx的东西跟守时器的级联有关,暂时不论他。要进入这种时钟形式首要置SMS为111,当然这还没完,不像内部时钟那样,什么都配好了,这儿你还得装备一下其他参数,比方挑选TI1FP1,天然要对输入通道1的参数装备好,这样时钟才干按你需求的方法进来。便是配框图这块
相关寄存器
CCMR1(输入)
|
IC2PSC[1:0] |
CC2S[1:0] |
IC1F[3:0] |
IC1PSC[1:0] |
CC1S[1:0] |
CCER
15 14
|
|
CC4P |
CC4E |
|
|
CC3P |
CC3E |
|
|
CC2P |
CC2E |
|
|
CC1P |
CC1E |
SMCR
15
ETP |
ECE |
ETPS[1:0] |
ETF[3:0] |
MSM |
TS[2:0] |
|
SMS[2:0] |
在CCMR1寄存器里挑选好相应的输入(CC1S)和滤波(IC1F)后再装备好输入极性(CCIP)然后在SMCR中挑选触发源(TS[2:0])为TI1这样输入通道就配好了!最终挑选SMS为111,敞开时钟(CR1中的CEN)。现在时钟便是从TI1上的输入了,能够接个时钟源进行计数之类的。同理,假如要用ETR就把它相关通道配好就能够了。
3、
从图上能够看出ETR能够直接作为时钟输入也能够经过触发输入(TRGI)来作为时钟输入即在时钟形式1中触发源挑选为ETR,两个作用上是相同的,看起来如同这个外部时钟形式2没什么用途,实践上不是的,他能够跟一些从形式(复位、触发、门控)进行组合。比方当从形式选为触发时,咱们不可能再经过触发源挑选ETR了,由于从形式操控器被占了,好在有外部时钟形式2,咱们挑选这种形式后就能够把两者组合在一同完结一些功用了。
总结一下,STM32的时钟挑选比较特别,在SFR中关于时钟挑选装备位不再一块,不是说两个位在一同00、01、11就挑选了而是由
SMCR中SMS和ECE 来操控,这样感觉能够吧内部时钟与外部形式2一起翻开(SMS:000,ECE:1),也能够吧外部形式1和外部形式2一起翻开(SMS:111,ECE:1),实践上上述两种方法用的都是外部时钟2.
四、捕获比较通道
这便是我说的守时器三个组成部分中的两个部分了。中心是那个捕获比较寄存器。
输出上的特征是不直接输出,而是有个OC1REF,这样能够界说高有用仍是低有用,输出自己需求的有用电平。
TIMER-1:守时器上溢,中止中取反LED.
现象:LED 周期2秒闪耀。
相关寄存器:
|
|
|
|
|
|
CKD[1:0] |
ARPE |
CMS[1:0] |
DIR |
OPM |
URS |
UDIS |
CEN |
ARR
PSC
接下来的4个试验跟输出通道有联系
试验2
TIMER-2:强置输出
现象:LED 常亮
比如比较简略关键是配好输出通道
CCER
15 14
|
|
CC4P |
CC4E |
|
|
CC3P |
CC3E |
|
|
CC2P |
CC2E |
|
|
CC1P |
CC1E |
CCMR(输出)
OC2CE |
OC2M[2:0] |
OC2PE |
OC2FE |
CC2S |
OC1CE |
OC1M[2:0] |
OC1PE |
OC1FE |
CC1S |
将通道1配为输出,输出使能,输出极性挑选好,输出形式挑选好就能够了。在V100试验板上PC6-9接了LED,刚好对应着TIMER3重映射后的输出,留意程序里的AFIO函数。
试验3
TIMER-3:输出比较
现象:LED 2秒的周期闪耀。
跟上个试验装备大致相同,仅仅把输出形式改为翻转功用,而且CRR要配好,当CRR=CNT时翻转输出。
试验4
TIMER-4:PWM输出
现象:输出4种不同占空比的PWM波,4个LED亮度不同。
试验5
TIMER-7:单脉冲方法
现象:LED 只闪耀一次。
将上个试验加一句话
TIM_SelectOnePulseMode(TIM3, TIM_OPMode_Single);
便是这个试验。其实手册上关于此试验的原意是由一个外部触发使能计数器,然后发生一个脉冲的,这儿还没触及从形式所以简化处理。