stm32的定时器输入捕获与输出比较讲解Word下载.docx
- 文档编号:13888140
- 上传时间:2022-10-14
- 格式:DOCX
- 页数:12
- 大小:342.31KB
stm32的定时器输入捕获与输出比较讲解Word下载.docx
《stm32的定时器输入捕获与输出比较讲解Word下载.docx》由会员分享,可在线阅读,更多相关《stm32的定时器输入捕获与输出比较讲解Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
从bottom计数到top。
并且有不同的工作模式。
另外还有个比较寄存器。
一旦计数寄存器在从bottom到top计数过程中与比较寄存器匹
配则会产生比较中断(比较中断使能的情况下)。
然后根据不同的工作模式计数寄存器将清零或者计数到
top值。
1、朋友,可以解释一下输入捕获的工作原理不?
很简单,当你设置的捕获开始的时候,cpu会将计数寄存器的值复制到捕获比较寄存器中并开始计数,当再次捕捉到电平变化时,这是计数寄存器中的值减去刚才复制的值就是这段电平的持续时间,你可以设置上升沿捕获、下降沿捕获、或者上升沿下降沿都捕获。
它没多大用处,最常用来测频率。
计数寄存器的初值,是自己写进去的吗?
是的,不过默认不要写入
我如果捕获上升沿,两个值相减,代表的时两个上升沿中间那段电平的时间。
对不?
是的
timerl有五个通道(对应五个10引脚),在同一时刻,只能捕获一个引脚的值,对不?
那是肯定的,通道很像ADC通道,是可以进行切换的。
那输出比较的原理你可以帮我介绍一下不?
这里有两个单元:
一个计数器单元和一个比较单元,比较单元就是个双缓冲寄存器,比较单元的值是可以根据不同的模式设置的,与此同时,计数器在不停的计数,并不停的与比较寄存器中的值进行比较,当计数器的值与比较寄存器的值相等的时候一个比较匹配就发生了,根据自己的设置,匹配了是io电平取反、变低、还是变高,就会产生不同的波形了。
比较单元的值是人为设进去的吧?
是的,但是他要根据你的控制寄存器的配置,来初始化你的比较匹配寄存器
5:
3
CMP[2:
0]
000
itltolWHK成选畀・卅崔时■的G尊于在TICCO中的比较也迭丼操f
OOOt
庄比较淆涂轨出
01
泄比较忧換3ft.出
Olh
隹向上比较设置総曲・Kom
<
■■4匕比较講徐諛由・在0设覽
!
0h
没奇馥用
1101
没有便用
Hh
匕址化罐HT14CMP[M】不蠢
上面这个总看不懂,好像不不止你说的那几种情况:
“匹配了是io电平取反、变低、
还是变高,就会产生不同的波形了”
就是比较匹配了你要10电平怎么办?
是清0还是置1?
还是怎么样?
这样才能产生波
形啊要不然你要比较单元有什么用呢?
设置输出就是置1,清除输出就是置0,切换输出就是将原来的电平取反,对不?
是的你理解的很快
011:
计数器向上计数达到最大值时将引脚置1,达到0时,引脚电平置0,,对不?
序怎么写啊?
求高人指点
1、陪定时器1的功能为特殊功能,不是普通10在PERCFG这里
2、P1SEL引脚选择
3、P1DIR设为输出
4、T3CC0设置周期
5、T3CC1设置占空比
6、T3CCTL0设置通道0
7、T3CCTL1设置通道1
8、T3CTL设为模模式
9、用T3CTL打开即可
************以下是用定时器做频率源,用定时器测量该频率的应用程序!
!
***********
调试STM32的定时器好几天了,也算是对STM32的定时器有了点清楚的认识了。
我需要测量4路信号的频率然后通过DMA将信号的频率传输到存储器区域,手册说的很
明白每个定时器有4个独立通道。
然后我就想能不能将这4路信号都连接到一个定时器的4
个通道上去。
理论上应该是行的通的。
刚开始俺使用的是TIM2的123通道,TIM4的2
通道来进行频率的测量。
由于没有频率发生器,所以我用tim3作为信号源,用TIM2,TIM4
来进行测量就ok了(刚好4个通道了)。
请看一开始的程序,以TIM2的1,3通道为例子(2通道设置方法一样)
配置为输
TIM」ClnitStructure.TIM」CMode=TIM」CModeICAP;
//
入捕获模式
TIM」ClnitStructure.TIM」CPolarity=TIM」CPolarityRising;
//输入上升沿
捕获
TIM」CInitStructure.TIM」CSelection=TIM」CSelectionDirectTI;
//通道方
向选择
TIM」ClnitStructure.TIM」CPrescaler=TIMICPSCDIV1;
//每次检测
到捕获输入就触发一次捕获
TIM」ClnitStructure.TIM」CFilter=0x0;
//滤波
TIM」Clnit(TIM2,&
TIM」ClnitStructure);
//TIM2
通道1配置完毕
TIM」CInitStructure.TIM」CMode=TIM」CModeICAP;
//配置为输入捕获
模式
TIM」ClnitStructure.TIMChannel=TIMChannel3;
//选择通道3
TIM」ClnitStructure.TIM」CSelection=TIM」CSelectionDirectTI;
TIM」ClnitStructure.TIM」CFilter=0x0;
//滤波
以上是输入捕获配置
还需要做的工作就是(参考stm32参考手册的TIM的结构框图)
TIMSelectInputTrigger(TIM2,TIMTSTI1FP1);
//参考TIM结构
图选择滤波后的TI1输入作为触发源,触发下面程序的复位
TIMSelectSlaveMode(TIM2,TIMSlaveModeReset);
//复位模式-选中
的触发输入(TRGI)的上升沿初始化计数器,并且产生一个更新线号
TIMSelectMasterSlaveMode(TIM2,TIMMasterSlaveModeEnable);
//主从模式选择
这样我们就可以很轻松的就得到了连接在TIM2的通道1上的信号的频率,但是3
通道的频率的值永远都是跳动的不准,测试了半天也没有找到根本原因,请看TIM的结构
框图的一部分
ETRF
TRGC
RP—-|—
»
inputFilter
—>
TRC
Trigger
CcnTrolier
SlSvB
F.tade
Controller
Reset
EncoderInterface
红色箭头所指,这才找到原因,触发的信号源只有这四种,而通道3上的计数器
的值不可能在接受到信号的上升沿时候,有复位这个动作,找到原因了。
这就是3通道上
的数据不停跳动的原因,要想得到信号的频率也是有办法的,可以取连续两次捕捉的值之差,这个值就是信号的周期,自己根据实际情况去算频率吧。
有以上可以得到:
stm32的TIM2的四个通道可以同时配置成输入捕捉模式,但是计算CH3,CH4
言号的频率步骤有点繁琐(取前后捕捉的差值),但是他的CH1,和CH2可以轻松得到
//参考TIM结构
通道1
TIMSelectlnputTrigger(TIM2,TIMTSTI1FP1);
复位模式-选中
TIMx->
CRR1的值即为信号的周期
通道2:
TIM_SelectInputTrigger(TIM2,TIM_TS_TI2FP2);
参考TIM结构
CRR2的值即为信号的周期
STM32的定时器外设功能强大得超出了想像力,STM32一共有8个都为
16位的定时器。
其中TIM6、TIM7是基本定时器;
TIM2、TIM3、TIM4、TIM5
是通用定时器;
TIM1和TIM8是高级定时器。
这些定时器使STM32具有定时、信号的频率测量、信号的PWM测量、PWM输出、三相6步电机控制及编码器
接口等功能,都是专门为工控领域量身订做的
基本定时器:
具备最基本的定时功能,下面是它的结构:
IL根据控制位的垃疋'
—在U韦件时传送饱皱载寄存器至实虹寄存崔
、4事件
中断和DMA输岀
我们来看看它的启动代码:
voidTIM2Configuration(void)
{基本定时器TIM2的定时配置的结构体(包含定时器配置的所有元素例如:
TIM_Period=
计数值)
TIMTimeBaselnitTypeDefTIMTimeBaseStructure;
设置TIM2CLK为72MHZ(即TIM2外设挂在APB1上,把它的时钟打开。
)
RCCAPB1PeriphClockCmd(RCCAPB1PeriphTIM2’ENABLE);
设置计数值位1000
TIMTimeBaseStructure.TIMPeriod=1000;
将TIM2CLK为72MHZ除以72=1MHZ为定时器的计数频率
TIMTimeBaseStructure.TIMPrescaler=71;
这个TIMClockDivision是设置时钟分割,这里不分割还是1MHZ的计数频率
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
设置为向上计数模式;
(计数模式有向上,向下,中央对齐1,中央对齐2,中央对齐3)
TIMTimeBaseStructure.TIMCounterMode=TIMCounterModeUp;
将配置好的设置放进stm32f10x-tim.c的库文件中
TIM_TimeBaseInit(TIM2,&
TIM_TimeBaseStructure);
清除标志位
TIMClearFlag(TI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- stm32 定时器 输入 捕获 输出 比较 讲解