打印
[STM32F1]

STM32的定时器1上电偶尔不输出PWM

[复制链接]
364|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tdh03z|  楼主 | 2023-10-23 13:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
调试定时器1的通道1输出PWM波形,发现断电重启时偶尔无PWM输出,而且烧写程序自动运行时,占空比控制也是反的。
搜索网上的经验,发现是我的初始化有问题,TIM1是高级定时器,功能多样,初始时没有正确初始,就会出现莫名其妙的问题

TIM_OCInitTypeDef                 TIM_OCInitStruct;
    TIM_OCInitStruct.TIM_OCMode       = TIM_OCMode_PWM2;           //脉冲宽度调制模式1
    //输出极性
    TIM_OCInitStruct.TIM_OCPolarity   = TIM_OCPolarity_High;       //输出极性
    TIM_OCInitStruct.TIM_OCIdleState  = TIM_OCIdleState_Set;       //在空闲时输出
    TIM_OCInitStruct.TIM_OutputState  = TIM_OutputState_Enable;    //PWM输出使能(正向通道)
    TIM_OCInitStruct.TIM_OutputNState = TIM_OutputNState_Disable;  //PWM输出失能(互补通道)
    TIM_OCInitStruct.TIM_OCNPolarity  = TIM_OCNPolarity_High;   //必须
    TIM_OCInitStruct.TIM_OCNIdleState = TIM_OCIdleState_Reset;  //必须
    TIM_OCInitStruct.TIM_Pulse        = 0;                         //捕获比较的脉冲值
    TIM_OC1Init(TIM1,&TIM_OCInitStruct);

使用特权

评论回复
沙发
她已醉| | 2023-11-19 14:52 | 只看该作者
偶尔上电不输出PWM?是不是程序没运行起来啊

使用特权

评论回复
板凳
温室雏菊| | 2023-11-19 17:00 | 只看该作者
你仿真的方式试试呗

使用特权

评论回复
地板
白马过平川| | 2023-11-19 19:00 | 只看该作者
一般情况是PWM的初始化顺序估计还是有问题

使用特权

评论回复
5
西洲| | 2023-11-19 21:00 | 只看该作者
占空比是反的,估计是初始化的极性设置有问题

使用特权

评论回复
6
捧一束彼岸花| | 2023-11-19 23:00 | 只看该作者
你这PWM直接那个官方的demo,在上面修改多好啊

使用特权

评论回复
7
我吃小朋友| | 2023-11-20 01:00 | 只看该作者
是不是你得PWM参数设置的不对啊

使用特权

评论回复
8
未说出口的像你| | 2023-11-20 03:00 | 只看该作者
PWM初始化应该很简单吧,你用cubemx直接配置一下都可以用

使用特权

评论回复
9
月亮一键变蓝| | 2023-11-20 05:00 | 只看该作者
确实是初始化的问题,看你描述就是初始化的问题

使用特权

评论回复
10
一只眠羊| | 2023-11-20 09:00 | 只看该作者
以后直接用cubemx配置吧,简单的很,而且出的问题也少

使用特权

评论回复
11
classroom| | 2023-11-20 10:49 | 只看该作者
可能是未正确配置TIM1的时钟源和分频器

使用特权

评论回复
12
laocuo1142| | 2023-11-20 10:50 | 只看该作者
如果初始化过程中没有正确配置TIM1,可能会导致PWM输出问题。

使用特权

评论回复
13
classroom| | 2023-11-20 10:50 | 只看该作者
环境因素(如电源电压波动、电磁干扰等)或外部设备(如其他驱动器或传感器)可能会影响TIM1的正常工作,导致PWM输出不稳定。

使用特权

评论回复
14
将爱藏于深海| | 2023-11-20 14:00 | 只看该作者
定时器1高级定时器,其实你要简单的PWM可以用定时器2的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

194

帖子

4

粉丝