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

[复制链接]
233|49
OliviaSH 发表于 2026-6-22 19:25 | 显示全部楼层
直接用TIM_SetCompare1()函数修改,结构体中的Pulse只用于初始化。
大鹏2365 发表于 2026-6-22 22:25 | 显示全部楼层
楼主这个坑我当初踩过!TIM_OCInitStructure只是初始化用的临时结构体,初始化函数执行完之后,这个结构体变量就没用了,直接改结构体里的Pulse根本不会写入定时器寄存器,波形自然不会变
烟雨蒙蒙520 发表于 2026-6-22 23:18 | 显示全部楼层
简单说下原理:初始化的时候只是把结构体里的参数拷贝到TIM外设寄存器,后续结构体和硬件寄存器完全断开联系,只改结构体等于改了个本地变量,硬件根本收不到更新
王派oo 发表于 2026-6-23 08:09 | 显示全部楼层
正确改占空比要用库函数__HAL_TIM_SET_COMPARE,直接操作捕获比较寄存器CCR,不用重新初始化定时器,主循环里实时调用就能立刻生效
MessageRing 发表于 2026-6-23 10:35 | 显示全部楼层
改完Pulse记得用库函数TIM_SetCompare1更新CCR,直接操作寄存器是没用的。
怎么总是重复啊 发表于 2026-6-23 11:10 | 显示全部楼层
补充一点,千万别在循环里反复调用HAL_TIM_OC_Init重新初始化,频繁初始化定时器会造成PWM波形断层、毛刺,电机驱动这类场景直接会抖
xiyaoko2365 发表于 2026-6-23 13:27 | 显示全部楼层
给个示例写法,假设用TIM1_CH1:__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 新Pulse值); 改完不用重启定时器,输出马上更新
caoyunhj2301 发表于 2026-6-23 15:17 | 显示全部楼层
如果是标准库不是HAL库,就直接操作寄存器TIM_SetCompare1(TIM1, 数值); 底层都是直接写CCR寄存器,这才是真正控制占空比的地方
突然下起雨 发表于 2026-6-23 18:30 | 显示全部楼层
顺带提醒下数值范围,Pulse不能超过定时器自动重装载值ARR,要是填的数大于ARR,波形输出会异常,改的时候记得校验区间
grfqq325 发表于 2026-6-23 20:03 | 显示全部楼层
我之前也疑惑为啥改结构体没用,后来看芯片手册才懂,OC初始化函数仅上电配置一次寄存器,运行时修改CCR才是动态调节的标准方案
斧王FUWANG 发表于 2026-6-23 22:58 | 显示全部楼层
有个误区很多人都犯:以为结构体变量会和硬件寄存器实时绑定,实际上结构体只是配置参数的载体,初始化完成就完成使命了,运行阶段完全失效
lxs0026 发表于 2026-6-24 08:19 | 显示全部楼层
实操步骤总结一下:1.初始化定时器和OC通道;2.开启PWM输出;3.循环里调用设置CCR的函数更新Pulse;4.无需重复执行初始化,波形平滑变化无干扰
有何不可0365 发表于 2026-6-24 20:49 | 显示全部楼层
楼主踩的雪花屏坑我之前移植SSD1309也碰到过,核心就是SPI时序和延时回调没对齐N32的时钟,延时不准直接花屏
wailian1265k 发表于 2026-6-24 21:55 | 显示全部楼层
GPIO_Delay回调函数确实是移植U8G2的重中之重,不能随便用简单空循环延时,最好依托MCU系统滴答定时器做精准延时
喂什么玩意 发表于 2026-6-24 23:11 | 显示全部楼层
提醒下用N32系列做SPI OLED,时钟结构体的分频、相位极性要和屏手册匹配,时钟算错一上电直接满屏雪花
烟雨蒙蒙520 发表于 2026-6-25 08:36 | 显示全部楼层
楼主精简工程这点很实用,删掉多余字库、冗余文件,上传论坛不会超大小限制,新人移植可以照着精简
caoyunhj2301 发表于 2026-6-25 10:51 | 显示全部楼层
我补充个踩坑点:SPI通信的CS、DC、RES引脚电平初始化顺序错了,也会出现雪花乱码,上电先拉复位再释放
王派oo 发表于 2026-6-25 13:17 | 显示全部楼层
U8G2自带的驱动库很多通用延时不匹配国产MCU,一定要重写底层回调,不要直接复用STM32现成回调
怎么总是重复啊 发表于 2026-6-25 15:52 | 显示全部楼层
调试雪花屏优先逻辑分析仪抓SPI波形,看SCL、SDA时序高低电平时长,一眼就能看出延时函数误差
xiyaoko2365 发表于 2026-6-25 16:57 | 显示全部楼层
同款N32G455+128*64 SSD1309,按楼主这套滴答定时器延时方案改完,显示稳定无花屏,工程已收藏
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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