你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 3450|回复: 2

stm32f103发PWM遇到问题,求帮助

[复制链接]

1

主题

3

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2013-5-8 11:18:49 | 显示全部楼层 |阅读模式
 用一个TIM发相位相差180度、占空比小于50%的两路PWM用于驱动推挽变换器,但是每次复位之后都会有一个脉冲,不知道是怎么来的。如图
28030.png
这个是软启动时的
scope_0.png
还有启动时没有开TIM时的波形
28029.png
我的配置如下
 
void TIM4_Configuration(void)
{
        TIM_TimeBaseInitTypeDef TIM_TBInitStructure;
        TIM_OCInitTypeDef TIM_OCInitStructure;
        uint16_t PrescalerValue = 0;
        PrescalerValue = (uint16_t) (SystemCoreClock / 24000000) - 1;
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
        TIM_TBInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
        TIM_TBInitStructure.TIM_CounterMode = TIM_CounterMode_CenterAligned1;
        TIM_TBInitStructure.TIM_Period = 1200; //10kHz Equal to 20kHz for push-pull
        TIM_TBInitStructure.TIM_Prescaler = PrescalerValue;
        TIM_TBInitStructure.TIM_RepetitionCounter = 1;
        TIM_TimeBaseInit(TIM4, &TIM_TBInitStructure);
        TIM_PrescalerConfig(TIM4, PrescalerValue, TIM_PSCReloadMode_Immediate);       
 
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
          TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
          TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
        TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
        TIM_OCInitStructure.TIM_Pulse = 60;
        TIM_OC3Init(TIM4, &TIM_OCInitStructure);
        TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable);
 
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
          TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
          TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
        TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
        TIM_OCInitStructure.TIM_Pulse = 1140;
        TIM_OC4Init(TIM4, &TIM_OCInitStructure);
        TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable);
 
        TIM_ARRPreloadConfig(TIM4, ENABLE);
        TIM_SetCounter(TIM4, 600);
        TIM_ClearFlag(TIM4, TIM_FLAG_CC3| TIM_FLAG_CC4);
 
        TIM_ITConfig(TIM4, TIM_IT_CC4, ENABLE);
        TIM_Cmd(TIM4, ENABLE);
}
是配置有问题么?怎么才能解决呢?谢谢各位啦!
 
回复

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2013-5-8 16:12:22 | 显示全部楼层

RE:stm32f103发PWM遇到问题,求帮助

看配置没有问题,建议仿真一下配置过程,到底是看看是哪儿引起的脉冲输出。
回复 支持 反对

使用道具 举报

1

主题

3

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2013-5-9 13:33:37 | 显示全部楼层

回复:stm32f103发PWM遇到问题,求帮助

回复第 2 楼 于2013-05-09 00:12:22发表:
看配置没有问题,建议仿真一下配置过程,到底是看看是哪儿引起的脉冲输出。
问题已解决,只要将timer寄存器赋600那句放在配置OC寄存器之前就行了。谢谢您的建议! scope_3.png
 
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版