[STM8] 求助:STM8S单片机Timer1的PWM配置

[复制链接]
 楼主| motor666 发表于 2013-2-25 10:36 | 显示全部楼层 |阅读模式
自己做的板,单片机是STM8S105K4,48脚。Timer1做定时器用的时候,将Timer1_CH1(机PC1脚)翻转有方波输出,说明管脚配置、时钟配置都对,用Timer1做PWM始终没有波形输出,求指点,非常感谢。Timer1的配置如下:

TIM1_PSCR = 0x3;    // 分频比1:4
TIM1_ARRH  = 0x9C;
TIM1_ARRL  = 0x40;   //周期
       
TIM1_CCR1H  = 0x4E;   //占空比是周期的一半  
TIM1_CCR1L  = 0x20;   //
       
TIM1_CCMR1 |= 0x60;   // PWM 模式1
TIM1_CCER1  = 0x01;   // OC1信号输出到对应的输出引脚
TIM1_IER    = 0x00;   // 不允许中断
TIM1_CR1   |= 0x1;    // 开启Timer1
TIM1_EGR   |= 0x1;    //

周期和占空比的值应该是正确的,因为用Timer2做的PWM就是这个值。
uet_cache 发表于 2013-2-25 11:11 | 显示全部楼层
你选项字节有配置没,看有没有测对引脚。
 楼主| motor666 发表于 2013-2-25 11:32 | 显示全部楼层
非常感谢你的回复,测量管脚一定是对的,用定时器方式让PC1翻转,有波形,示波器探头没动过。但是我看选项字节里并没有PC1的选项。
uet_cache 发表于 2013-2-25 12:03 | 显示全部楼层
那你还是检查下吧。STM8电机库中也是用寄存器对TMI1操作,你可以参考下配置。
 楼主| motor666 发表于 2013-2-25 12:26 | 显示全部楼层
本帖最后由 motor666 于 2013-2-25 12:29 编辑

c:\Temple_Project\选项字节 选项字节.GIF
 楼主| motor666 发表于 2013-2-25 12:30 | 显示全部楼层
上图就是选项字节的图,根本没有Timer1_CH1的配置
 楼主| motor666 发表于 2013-2-27 09:02 | 显示全部楼层
105的Timer1_CH1的使用根本不需要在选项字节里设定。
shuishuo615 发表于 2013-3-5 21:28 | 显示全部楼层
TIM1和TIM2寄存器不同之处在于一个BKR寄存器
hjl2832 发表于 2013-3-6 11:39 | 显示全部楼层
去掉TIM1_EGR   |= 0x1;    // 这个试试,我记得以前碰到过这个问题。
liyiui 发表于 2014-10-13 10:04 | 显示全部楼层
我现在也碰到了这个问题,怎么解决的也不说声,唉
gxbltao 发表于 2015-7-16 09:48 | 显示全部楼层
群主你的问题解决了吗
hwh123 发表于 2015-7-16 12:37 | 显示全部楼层
学习了,谢谢
wahahaheihei 发表于 2016-2-28 20:42 | 显示全部楼层
TIM1_DeInit();  
TIM1_TimeBaseInit(16, TIM1_COUNTERMODE_UP, 999, 0x00);//250  
TIM1_OC4Init(TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_ENABLE, 499, TIM1_OCPOLARITY_LOW, TIM1_OCIDLESTATE_RESET);//50%占空比  
TIM1_CCxCmd(TIM1_CHANNEL_4, ENABLE);  
TIM1_OC4PreloadConfig(ENABLE);  
TIM1_CtrlPWMOutputs(ENABLE);  
TIM1_Cmd(ENABLE);  
wahahaheihei 发表于 2016-2-28 20:44 | 显示全部楼层
其中特别要注意,
TIM1_CtrlPWMOutputs(ENABLE);
那行代码。若不使能,TIM1是不会产生PWM输出的(就这个行代码,纠结了两晚)。
另外,使用TIM2/3/4等其他定时器输出PWM貌似没有那么多步骤。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

426

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部