OpenEdv-开源电子网

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

原子 实验9 PWM输出

[复制链接]

42

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
369
金钱
369
注册时间
2013-7-21
在线时间
35 小时
发表于 2013-7-24 12:35:07 | 显示全部楼层 |阅读模式

 while(1)
 {
   delay_ms(10); 
  if(dir)led0pwmval++;
  else led0pwmval--;

   if(led0pwmval>300)dir=0;
  if(led0pwmval==0)dir=1;          
  TIM_SetCompare2(TIM3,led0pwmval);     //这里我不明白 怎么通过这个函数来 改变PWM的占空比??
 }

 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高
  这句我也不怎么明白,输出极性这样设置,有什么用,如果设置为 比较极性低,结果又是怎么样??

狗一样的学,猪一样的玩
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

204

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
287
金钱
287
注册时间
2013-7-17
在线时间
0 小时
发表于 2013-7-24 14:47:47 | 显示全部楼层
第二个问题可以看《STM32参考手册》第289页OC1M位设置为110和111时的解释,其中有效电平就是这里设置的TIM_OCPolarity,当设置为 TIM_OCPolarity_High的时候,有效电平就是高电平,当设置为 TIM_OCPolarity_Low的时候,有效电平就是低电平。
第一个问题,还要参考TIM_TimeBaseInit函数里的TIM_Period值,这个值可以理解为总值,也就是定时器加(减)数最大就是这个值,然后led0pwmval就是比较值,大于led0pwmval数是一种电平,小于led0pwmval数又是另外一种电平,占空比就可以理解为led0pwmval/TIM_Period*100%,不知道你理解了没。


如果解释有错,还请原子哥帮助,谢谢。
有生之年,只诉温暖不言殇,花味渐浓,茶味渐醇,倾心相遇,安暖相陪。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-24 14:54:47 | 显示全部楼层
回复【楼主位】小陈陈:
---------------------------------
可以试试,实际测试下.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

86

主题

984

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2013-4-15
在线时间
163 小时
发表于 2013-7-24 15:38:06 | 显示全部楼层
回复【楼主位】小陈陈:
---------------------------------
这个实验我刚研究过,我说说,看你可能理解我说的!
TIM_SetCompare2(TIM3,led0pwmval);通过这个函数可以往捕获/ 比较寄存器2(TIM3_CCR2)里面写值,当定时器3更新的时候,把led0pwmval写入到TIM3_CCR2里面,然后定时器就会不停的把TIM3_CNT寄存器的值和TIM3_CCR2寄存器里面的值进行比较,假如你设置的是向上计数模式,并且通过这个函数(TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高)把TIM3的输出/比较极性设置为高的时候,那么此时如果TIM3_CNT<TIM3_CCR2那么输出就是低电平,如果TIM3_CNT>=TIM3_CCR2那么输出就是高电平,所以在这里(//输出极性:TIM输出比较极性高)的意思是TIM3_CNT>=TIM3_CCR2时候的极性为高,明白了不?
合肥-文盲
回复 支持 反对

使用道具 举报

86

主题

984

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2013-4-15
在线时间
163 小时
发表于 2013-7-24 15:40:54 | 显示全部楼层
回复【楼主位】小陈陈:
---------------------------------
还有原子说的PWM模式有两种,即PWM1和PWM2(011和111),原子说他两个就极性相反,他这句话是有条件的,那就是这两种模式的其它配置完全一样的时候,他们两个的输出极性才相反。
合肥-文盲
回复 支持 反对

使用道具 举报

42

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
369
金钱
369
注册时间
2013-7-21
在线时间
35 小时
 楼主| 发表于 2013-7-25 16:08:48 | 显示全部楼层
基本上明白了,谢谢各位大哥
狗一样的学,猪一样的玩
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-16 16:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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