打印
[其他ST产品]

怎样才能使STM32多定时器同时工作?

[复制链接]
2255|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
powerantone|  楼主 | 2023-7-26 10:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
定时器单独可以工作,但同时开两个定时器的时候,有些消息就接受不到,只能等到程序中重开定时器才可以。任务如下:一个定时器定时20MS,触发方式控制另外一个定时器发送PWM脉冲,20MS定时时间到,改变PWM脉冲的脉宽,可以正常工作。但如果开另外一个定时器,每10MS用来检测串口接受数据,如果接受到数据,然后就进行处理。现在是当两个定时器同时工作时,发送出的脉冲频率不对,中间有不定间隔的攒动,导致电机抖动。麻烦遇到的朋友分享下!

使用特权

评论回复
沙发
香水城| | 2023-7-26 10:29 | 只看该作者
你这里似乎提到了3个定时器,一个定时器20ms的定时周期,定时触发另一个定时器发PWM波;

还有个定时器每10ms检测串口有无接收到数据,串口数据的接收使用中断不更好吗?你说发现有收到数据就处理,这个处理是在

主线程还是中断里进行的? 可以考虑安排不同优先级保证前面2个定时器的定时触发任务不被耽搁或打断。

使用特权

评论回复
板凳
鸡蛋鸭蛋荷包蛋| | 2023-7-26 11:56 | 只看该作者
你的问题,如果猜的不错的话,接收数据定时器的优先级在pwm改变脉宽的定时器之前,接收数据打断了脉宽改变,可以调整脉宽定时器的优先级尝试一下。

使用特权

评论回复
地板
coody| | 2023-7-26 21:03 | 只看该作者
定时器都是相互独立的,各自初始化开起来就OK。

使用特权

评论回复
5
田舍郎| | 2023-7-26 21:34 | 只看该作者
定时器优先级冲突的么

使用特权

评论回复
6
玄德| | 2023-7-27 10:39 | 只看该作者

即使两个定时器启动不同步,即使中断有优先级,时间差又能有多少?
最多就是微秒级别。

电机驱动,串口通信,这些都是慢得不行的事情,能被几微秒、几毫秒影响到吗?

所以,问题不在这里。你的工作流程有问题,或者程序有 bug 。






使用特权

评论回复
7
白马过平川| | 2023-8-12 22:10 | 只看该作者
定时器们也不冲突啊,你想杂用就咋用呗

使用特权

评论回复
8
MessageRing| | 2023-8-12 23:23 | 只看该作者
都选中使能一下不就行了

使用特权

评论回复
9
风凉| | 2023-8-12 23:46 | 只看该作者
只要不在定时器里做数据处理,就没啥问题

使用特权

评论回复
10
西洲| | 2023-8-13 01:04 | 只看该作者
你可以参考官方或者原子他们的代码啊,例程里就有定时器的例程的

使用特权

评论回复
11
捧一束彼岸花| | 2023-8-13 03:22 | 只看该作者
你可以做几个全局变量标记,然后定时的清理标记就行了

使用特权

评论回复
12
故意相遇| | 2023-8-13 05:35 | 只看该作者
2个定时器,还中间有不定时的动作?这是为啥?

使用特权

评论回复
13
春日负喧| | 2023-8-13 07:43 | 只看该作者
一般定时器之间也不会互相干扰的啊

使用特权

评论回复
14
将爱藏于深海| | 2023-8-13 09:13 | 只看该作者
你这是不是有干扰影响的电机抖动啊

使用特权

评论回复
15
失物招領| | 2023-8-13 11:24 | 只看该作者
建议还是不要在定时器里处理数据才行,不然定时器的计数是不准的

使用特权

评论回复
16
月亮一键变蓝| | 2023-8-13 13:07 | 只看该作者
对啊,串口用串口中断多好啊

使用特权

评论回复
17
在曼谷的春| | 2023-8-13 18:24 | 只看该作者
你这中断没用对,串口可以用串口中断,而且定时器按理来说,不会有影响才对

使用特权

评论回复
18
Undshing| | 2023-8-14 23:58 | 只看该作者
直接开定时器就行,注意优先级就行了

使用特权

评论回复
19
Bowclad| | 2023-8-15 23:54 | 只看该作者
定时器全部工作对程序不会影响的

使用特权

评论回复
20
AloneKaven| | 2023-8-16 23:36 | 只看该作者
定时器又不冲突,直接开启就能用啊

使用特权

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

本版积分规则

621

主题

3360

帖子

4

粉丝