[综合信息] 初始化后修改Pulse值为何无效?

[复制链接]
527|76
zhuotuzi 发表于 2026-7-21 15:41 | 显示全部楼层
寄存器只读,只能硬件自更新,软件写不生效,寄存器有写保护 / 预装载影子寄存器机制(STM32 定时器致命坑),定时器处于运行态(计数器正在工作),部分寄存器禁止写入
星闪动力 发表于 2026-7-22 16:43 | 显示全部楼层
调整电机转速通过改定时器CCR值,不用动结构体设置。
天天向善 发表于 2026-7-23 14:23 | 显示全部楼层
刚开机,定时器启动了,通道也工作了。要调整参数得先停机。
lllook 发表于 2026-7-24 23:31 | 显示全部楼层
使用库函数调整占空比方便又可靠。
Moon月 发表于 2026-8-4 20:37 | 显示全部楼层
CCR寄存器值影响PWM高电平时长,改寄存器调整PWM宽。
物联万物互联 发表于 2026-8-8 09:36 | 显示全部楼层
改变ccr寄存器设置,直接调节PWM占空比。
IntelCore 发表于 2026-8-11 14:44 | 显示全部楼层
修改CCRx占空比寄存器后,因未启用重载更新事件,故占空比变更未立即生效。需启用重载才能更新。
鹿鼎计 发表于 2026-8-13 20:01 | 显示全部楼层
调整CC寄存器改变PWM高电平时长,类似调整灯光亮度。
单芯多芯 发表于 2026-8-14 07:30 | 显示全部楼层
调整CCRx寄存器可以改变PWM的占空比,进而调节电机转速。
jdqdan 发表于 2026-8-21 19:24 | 显示全部楼层
库函数调整占空比方便又可靠,适合新手快速实现。
yiyigirl2014 发表于 2026-8-25 10:37 | 显示全部楼层
初始化init()/begin()的时候,把 Pulse 脉冲数、脉冲频率、占空比写入硬件。后续直接修改变量,只是改 RAM 里的软件变量,没有重新写入硬件寄存器,硬件不会感知变化。
星闪动力 发表于 2026-9-4 16:27 | 显示全部楼层
检查你的硬件配置和数据映射,确保它们正确更新以匹配寄存器。
幸福小强 发表于 2026-9-4 16:45 | 显示全部楼层
Pulse 一般指脉冲输出寄存器、PWM 占空比、脉冲数量、延时脉冲参数,常见于单片机 (STM32、ESP32)、PLC、伺服运动控制
IntelCore 发表于 2026-9-8 11:24 | 显示全部楼层
改变CCR寄存器值,就像调整灯光亮度,能控制PWM信号的占空比,进而影响电机转速。
小灵通2018 发表于 2026-9-10 18:25 | 显示全部楼层
初始化完成之后,这个结构体只是内存里一个普通变量,定时器硬件寄存器已经和这个结构体断开。你后面直接修改 ocInit.Pulse = xxx,只是改 RAM 变量,不会自动写入 CCR 捕获比较寄存器,硬件波形不会变化。
LinkMe 发表于 2026-9-11 20:51 | 显示全部楼层
改变CCR寄存器的值就能调整PWM的高电平时长,直接修改它即可。
小夏天的大西瓜 发表于 2026-9-11 23:31 | 显示全部楼层
初始化结构体只在Init时生效,运行中改占空比要用TIM_SetCompare或直接写CCR寄存器,改完还要看计数模式是否需要重装载生效。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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