32F1 主从定时器 控制步进电机

目的

用主从定时器的方法精确控制步进电机

概念

主从定时器也就是使用两个定时器,其中一个定时器(主)是另外一个定时器(从)的触发源。

使用材料

STM32F103ZET6

定时器补充知识

三个重要的量:

ARR——自动重新装载的值(计数器CNT的满值)

CNT——计数器值

PSC——预分频值

一图说明PSC与CNT的关系:PSC影响CNT每计数一次的时间  
以TIM3为例,说明ARR与PSC对定时周期(溢出时间)的影响


各种时间模式比较

关于定时器TIM的八种模式之间的关系具体解读可以查看一下链接

STM32定时器输出比较模式中的疑惑

PWM补充知识

一个重要的量:

CCRx——时刻与CNT比较的值

PWM与定时器的关系:PWM是定时器工作模式中的一种,单独的定时器工作模式有四种。

单独一个定时器有四种工作模式:

1.输入捕获(典型应用就是计算输入脉冲高电平持续时间)

2.输出比较(当CNT=CCRx,输出电平取反)

3.PWM(当CNTCCRx为另外一种电平)

4.单脉冲(只输出一个脉冲)

其他工作模式:两个定时器之间还可以构成主从模式、支持针对定位的增量(正交)编码器和霍尔传感器电路、触发输入作为外部时钟或者按周期的电流管理等。

输出比较和PWM的区别:


PWM


输出比较

定时器主从模式

流程:


主从模式(使用一个定时器作为另一个定时器的预分频器)流程图

首先,配置好两个计时器(TIM),然后配置某个TIM为主定时器,接着配置这个TIM的TRGO。然后配置另外一个TIM为从定时器,使用ITRx为内部触发,最后选择从TIM的输入触发源。接下来看看官方文档(《STM32参考手册v10》P278)说明。

                             使用TIM1作为TIM2的预分频器                 

此图例子使用的是TIM1和TIM2构成主从模式。TIM1为 主,TIM2为从。

TIMx的内部连接:

TIM与TIM之间不是随便连接的,其内部通道是固定的,下表说明了这种关系。

TIM2~5内部触发
TIM1、8内部触发

实现代码

1、初始化对应IO及各种时钟

2、配置PWM模式,其中ARR根据自己情况设定,占空比CCRx可以固定

3、选择主定时器

///*///定时器x主模式设置///*/

TIM_SelectMasterSlaveMode(TIMx, TIM_MasterSlaveMode_Enable);

4、选择主定时器触发方式

TIM_SelectOutputTrigger(TIMx, TIM_TRGOSource_Update);

//TIM_TRGOSource:触发输出模式

//TIM_TRGOSource_Update:使用更新事件作为触发输出

5、选择从定时器内部通道

///*///定时器x从模式设置///*/

TIM_SelectInputTrigger(TIMx, TIM_TS_ITRx);

//TIM_TS_ITRx中的x要根据上述内部连接表格结合主从定时器来设置

6、设置从定时器触发源

TIM_SelectSlaveMode(TIMx,TIM_SlaveMode_External1);

7、配置完毕,完整代码可看引用链接,特别是嵌入式STM32学习笔记(5)——定时器主从模式,精确输出PWM脉冲数量



引用

STM32定时器同步模式 四种

PWM输入模式

使用STM32定时器周期性地触发ADC的介绍

STM32定时器的TRGO信号

tim trgo 的使用方法

STM32——PWM基本知识及配置过程

TIM输出比较的三种模式

定时器 主从模式 大揭秘

STM32输出比较模式和PWM模式 比较

STM32学习及开发笔记八:采用主从计时器实现精确脉冲输出

STM32定时器系列 - STM32定时器的信号触发与主从模式

嵌入式STM32学习笔记(5)——定时器主从模式,精确输出PWM脉冲数量

利用STM32F103精确控制步进电机

你可能感兴趣的:(32F1 主从定时器 控制步进电机)