OpenEdv-开源电子网

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

TIM2定时器产生PWM波时钟问题

[复制链接]

25

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-4-20
在线时间
0 小时
发表于 2015-7-6 14:40:44 | 显示全部楼层 |阅读模式
5金钱

    STM8S单独测试TIM2产生PWM的时候,是按照预期设定来运行的,频率为2Hz,但是加入到工程中,工程中其他的配置都没开,只是纯碎加入进去,产生PWM的频率明显变高了,这是怎么回事呢?

    这是单独测试的程序,没有问题:

    

[mw_shl_code=c,true]/* TIM2_CH3 PWM PD2 output */ #include <STM8S103F3P.h> void CLK_init(void) { CLK_ICKR |= 0X01; //使能内部高速时钟 HSI CLK_CKDIVR |= 0x08; // 16M内部RC经2分频后系统时钟为8M while(!(CLK_ICKR&0x02));//HSI准备就绪 CLK_SWR=0xe1; //HSI为主时钟源 } void Init_Tim2(void) { TIM2_CCMR3 |= 0X70; //设置定时器2三通道(PD2)输出比较三模式 TIM2_CCMR3 |= 0X04; //输出比较3预装载使能 TIM2_CCER2 |= 0x03; //通道3使能,低电平有效,配置为输出 // 初始化时钟分频器为1,即计数器的时钟频率为Fmaster=8M/64=0.125MHZ TIM2_PSCR = 0X06; //初始化自动装载寄存器,决定PWM 方波的频率,Fpwm=0.125M/62500=2HZ TIM2_ARRH = 62500/256; TIM2_ARRL = 62500%256; //初始化比较寄存器,决定PWM 方波的占空比:5000/10000 = 50% TIM2_CCR3H = 31250/256; TIM2_CCR3L = 31250%256; // 启动计数;更新中断失能 TIM2_CR1 |= 0x81; //TIM2_IER |= 0x00; } void Init_GPIO(void) { /*设置为推挽输出,PD2接了LED灯*/ PD_DDR |= 0X04; //设置PD2端口为输出模式 PD_CR1 |= 0X04; //设置PD2端口为推挽输出模式 PD_CR2 &= 0XFD; PA_DDR |= 0X08; //设置PA3端口为输出模式 PA_CR1 |= 0X08; //设置PA3端口为推挽输出模式 PA_CR2 |= 0XF7; } void main(void) { CLK_init(); Init_GPIO(); Init_Tim2(); while (1); } [/mw_shl_code]

下面的截图是我的工程的主程序:


    

    其他的都屏蔽了,TIM2配置跟独立测试时一模一样,咋回事呢?有什么因素会影响呢?我的开发环境为STVD+COSMIC,板子为stms103f3p6。

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

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164932
金钱
164932
注册时间
2010-12-1
在线时间
2100 小时
发表于 2015-7-6 23:09:44 | 显示全部楼层
回复

使用道具 举报

25

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-4-20
在线时间
0 小时
 楼主| 发表于 2015-7-7 14:17:41 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
“帮顶”真是醉了。。。
TIM1和TIM2的时钟分频会不会相互影响呢?
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164932
金钱
164932
注册时间
2010-12-1
在线时间
2100 小时
发表于 2015-7-7 23:01:09 | 显示全部楼层
回复【3楼】回首看那个曾经的我:
---------------------------------
我不知道。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

25

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2013-4-20
在线时间
0 小时
 楼主| 发表于 2015-7-12 10:25:46 | 显示全部楼层
回复【3楼】回首看那个曾经的我:
---------------------------------
在这篇博文中http://blog.csdn.net/freeape/article/details/46802003虽然得到了解决,但是对最后的原理还是不怎么明白。
回复

使用道具 举报

15

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2016-12-9
在线时间
33 小时
发表于 2017-11-24 14:27:53 | 显示全部楼层
兄弟 问你个问题  你用寄存器操作的 每次写程序是不是还要翻数据手册看寄存器设置啊
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-6-16 22:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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