打印
[应用相关]

stm32用tim输出pwm似乎先使能一次cen再设置cnt才有用?

[复制链接]
1175|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
classroom|  楼主 | 2024-5-29 15:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
设计是用tim输出Pwm控制呼吸灯,有时要求其只亮或只灭,直到状态变化。这个功能我准备用修改cnt,关闭cen的方式实现。实验中我发现必须要使能cen一次,哪怕之后立刻关掉,设置cnt才会正常起作用。请问这是为什么,有什么更好的方式修改
我使用的是stm32f030c8t6的tim16,代码大致如下

使用特权

评论回复
沙发
她已醉| | 2024-6-14 14:27 | 只看该作者
是的,对于STM32中使用TIM(定时器)输出PWM信号,通常需要设置一下才行

使用特权

评论回复
板凳
春日负喧| | 2024-6-14 17:00 | 只看该作者
首先需要使能定时器,可以通过设置TIMx_CR1寄存器中的CEN位来实现。这将启动定时器的计数。

使用特权

评论回复
地板
故意相遇| | 2024-6-14 19:00 | 只看该作者
在使能定时器后,需要设置TIMx_CNT寄存器的值,这将决定PWM波形的周期。

使用特权

评论回复
5
失物招領| | 2024-6-14 21:00 | 只看该作者
设置比较寄存器,接下来,需要设置TIMx_CCRx寄存器的值,这将决定PWM波形的占空比。

使用特权

评论回复
6
温室雏菊| | 2024-6-14 23:00 | 只看该作者
通常,设置TIMx_CCRx寄存器的值为一个比TIMx_CNT寄存器小的数值,以确定PWM的占空比。

使用特权

评论回复
7
白马过平川| | 2024-6-15 02:00 | 只看该作者
配置输出模式,最后,需要配置TIMx_CCMRx寄存器和TIMx_CCER寄存器,以选择PWM模式和使能PWM输出。

使用特权

评论回复
8
风凉| | 2024-6-15 04:00 | 只看该作者
在实际应用中,确保按照正确的顺序进行这些设置,以确保PWM信号能够正确输出。

使用特权

评论回复
9
西洲| | 2024-6-15 08:00 | 只看该作者
如果按照上述步骤进行设置,但仍然无法正确输出PWM信号,可能需要检查定时器时钟源、定时器时钟频率等设置是否正确。

使用特权

评论回复
10
将爱藏于深海| | 2024-6-15 12:00 | 只看该作者
那你就加cnt试试呗

使用特权

评论回复
11
捧一束彼岸花| | 2024-6-15 14:00 | 只看该作者
一般你可以使用cubemx配置一下,看看

使用特权

评论回复
12
rzjvv| | 2024-8-31 17:40 | 只看该作者
某些寄存器的值在计数器运行期间进行实时更新,而在计数器停止时,可能会出现延迟或不一致的情况。

使用特权

评论回复
13
而服务器人| | 2024-9-30 03:14 | 只看该作者
使用一个状态变量来控制灯的亮灭,比如 led_state。通过状态机控制亮灭,避免频繁使能和禁用定时器。

使用特权

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

本版积分规则

432

主题

2107

帖子

1

粉丝