OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 12420|回复: 5

用高级定时器TIM1产生PWM的程序和通用定时器一样么?

[复制链接]

77

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
526
金钱
526
注册时间
2013-11-25
在线时间
0 小时
发表于 2014-3-21 15:44:35 | 显示全部楼层 |阅读模式
就是说,是不是只需要配置:
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
TIM_OCInitTypeDef  TIM_OCInitStructure;
这两项就可以了?

我目前知道的区别是:使能定时器时钟APB2
那么关于刹车和死区的配置: TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
是否是必要的呢?还是说,只有同时应用互补输出通道TIM1_CHXN的时候才需要配置BDTR

另外, TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Set;
TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCIdleState_Reset;也是只有用到chxn才要配置的么?

最后,请问一下 TIM_CtrlPWMOutputs(TIM1,ENABLE);这个语句在PWM产生中有什么作用么?必须要用么?我看到通用定时器是没有这个函数的,所以这是TIM1特有的?产生PWM必用??


   





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-21 15:50:48 | 显示全部楼层
恩,BDTR是必须有的,TIM_CtrlPWMOutputs设置的就是这个
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

77

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
526
金钱
526
注册时间
2013-11-25
在线时间
0 小时
 楼主| 发表于 2014-3-21 15:56:20 | 显示全部楼层
回复【2楼】745021926:
---------------------------------
那么我这么配置就可以了么:
TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
TIM_BDTRInitStructure.TIM_OSSRState=TIM_OSSRState_Enable;
TIM_BDTRInitStructure.TIM_OSSIState=TIM_OSSIState_Enable;
TIM_BDTRInitStructure.TIM_LOCKLevel=TIM_LOCKLevel_1;
TIM_BDTRInitStructure.TIM_DeadTime=0x7F;
TIM_BDTRInitStructure.TIM_Break=TIM_Break_Disable;
TIM_BDTRInitStructure.TIM_BreakPolarity=TIM_BreakPolarity_High;
TIM_BDTRInitStructure.TIM_AutomaticOutput=TIM_AutomaticOutput_Enable;
TIM_BDTRConfig(TIM1,&TIM_BDTRInitStructure);
TIM_CtrlPWMOutputs(TIM1,ENABLE);

想请问:TIM_BDTRInitStructure.TIM_DeadTime这个是设置死区时间的,指定了输出和打开关闭状态之间的延时。通用定时器没有这项,是不是就相当于我把这个deadtime设置为0呢?如果我使用TIM1的同时还使用了TIM2,为了让他们同时输出,我是不是应该把这个设置为0?

另外:TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Set;
TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCIdleState_Reset;
这个是必须的么??

谢谢!
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-3-21 16:03:33 | 显示全部楼层
回复【3楼】馨馨泡沫:
---------------------------------
恩,这个可以不设置,你查中文参考手册就可以看相关位的用途
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

77

主题

198

帖子

0

精华

高级会员

Rank: 4

积分
526
金钱
526
注册时间
2013-11-25
在线时间
0 小时
 楼主| 发表于 2014-3-21 16:19:35 | 显示全部楼层
回复【4楼】745021926:
---------------------------------
好的,谢谢!
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2018-8-14
在线时间
13 小时
发表于 2019-2-14 22:05:08 | 显示全部楼层
控制刹车和死区时间的寄存器,只有高级定时器才用到
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 13:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表