ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

[STM32F1] STM32多定时器同时工作问题

[复制链接]
128|12
 楼主 | 2018-11-7 17:47 | 显示全部楼层 |阅读模式
定时器单独可以工作,但同时开两个定时器的时候,有些消息就接受不到,只能等到程序中重开定时器才可以。任务如下:一个定时器定时20MS,触发方式控制另外一个定时器发送PWM脉冲,20MS定时时间到,改变PWM脉冲的脉宽,可以正常工作。但如果开另外一个定时器,每10MS用来检测串口接受数据,如果接受到数据,然后就进行处理。现在是当两个定时器同时工作时,发送出的脉冲频率不对,中间有不定间隔的攒动,导致电机抖动。麻烦遇到的朋友分享下!
| 2018-11-7 20:09 | 显示全部楼层
你不要在两个地方控制 PWM 脉宽,  混乱了
当然你可以使用影子寄存器的办法解决
| 2018-11-8 10:03 | 显示全部楼层
请问什么是影子寄存器
 楼主 | 2018-11-8 11:47 | 显示全部楼层
airwill 发表于 2018-11-7 20:09
你不要在两个地方控制 PWM 脉宽,  混乱了
当然你可以使用影子寄存器的办法解决 ...

我需要定时,在一定时间内改变PWM的脉宽。假如用一个定时器,可以计时并同时产生PWM波吗?影子寄存器不太懂,麻烦多说说可以吗?
| 2018-11-8 12:13 | 显示全部楼层
磨砂 发表于 2018-11-8 10:03
请问什么是影子寄存器

影子寄存器的引入是ARM的一个特点(X86,PowerPC都没有)。我们知道,ARM有16个通用寄存器,这16个通用寄存器在指令中使用4个bit来标识,但是在不同的模式下,同样的4个bit 指向不同的物理寄存器,这些不同的物理寄存器就被称之为影子寄存器。不同的通用寄存器的影子寄存器个数也不相同,有的没有,有的只有1个,有的多达5个。要记住一点:所有的影子寄存器都是一个实际存在的物理寄存器。
| 2018-11-8 15:01 | 显示全部楼层
设计合理点。
| 2018-11-9 07:00 | 显示全部楼层
用一个定时器,可以计时并同时产生PWM波吗? 可以,  可以用定时器的溢出中断计时
| 2018-11-9 09:07 | 显示全部楼层
晓伍 发表于 2018-11-8 12:13
影子寄存器的引入是ARM的一个特点(X86,PowerPC都没有)。我们知道,ARM有16个通用寄存器,这16个通用寄 ...

感谢热心解答
| 2018-11-9 09:20 | 显示全部楼层

客气了 举手之劳
| 2018-11-9 12:14 | 显示全部楼层
开启预装载就行了
 楼主 | 2018-11-12 09:49 | 显示全部楼层
airwill 发表于 2018-11-9 07:00
用一个定时器,可以计时并同时产生PWM波吗? 可以,  可以用定时器的溢出中断计时 ...

用溢出中断计时,适合脉宽固定的吧,我现在脉宽需要每20MS改变一次,脉宽改变了,定时基准变了,中断次数肯定就得改变了吧。
| 2018-11-12 10:13 | 显示全部楼层
只是大致了解你描述什么了。
你注意修改ARR/CCR时是否开启了影子寄存器的预装功能;
如果2个定时器都启用了中断去修改,注意优先级的合理安排,以及中断服务程序要简洁点;
| 2018-11-12 19:45 | 显示全部楼层
shenjinliang02 发表于 2018-11-12 09:49
用溢出中断计时,适合脉宽固定的吧,我现在脉宽需要每20MS改变一次,脉宽改变了,定时基准变了,中断次数 ...

溢出中断里计时, 你可以加重装寄存器, 而不是加一
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

快速回复 返回顶部 返回列表