打印
[STM32F4]

TIM1 高级定时器 4路控制信号 驱动步进电机

[复制链接]
3736|43
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tcdbobo|  楼主 | 2019-5-27 14:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
控制板:NUCLEO-F410RB 驱动:DRV8833电机驱动模块 电机:驰海电机 2相4线 步进电机现在的问题是,单独IO发送脉冲,电机可以 正常转动。用的是网上现成的8拍方式,
四个引脚各一根控制线:A~H表示各线时序
         A     B     C    D     E     F     G     H
A       1     1     0     0     0     0     0     1
A-      0     0     0     1     1     1     0     0
B       0     1     1     1     0     0     0     0
B-      0     0     0     0     0     1     1     1
现在想的是,直接用STM32F410的TIM1 输出4路脉冲,但模式比较输出和PWM好像都不太对,我手画了一张时序图,请大佬帮忙提供些思路,有没有用高级定时器做过类似的脉冲输出。 我用的HAL库 ,cubeMX,附两张网络视频中 ,使用cubeMX配置TIM1(高级控制定时器)比较输出模式,和PWM模式,在示波器中输出的波形,和我手画的波形图还是不太一样。不知道有没有人用过TIM1(高级控制定时器)输出4路时序不同的波形。

输出比较.jpg (68.76 KB )

输出比较.jpg

PWM模式.jpg (44.93 KB )

PWM模式.jpg

使用特权

评论回复
沙发
conjunction| | 2019-5-27 16:37 | 只看该作者
加上软件干预的话会简单很多

使用特权

评论回复
板凳
tcdbobo|  楼主 | 2019-5-28 09:43 | 只看该作者
conjunction 发表于 2019-5-27 16:37
加上软件干预的话会简单很多

您能说的详细些吗?谢谢

使用特权

评论回复
地板
香水城| | 2019-5-28 22:40 | 只看该作者
本帖最后由 香水城 于 2019-5-29 19:56 编辑

一共4路,用TIM1的四个通道。

/B路可以使用PWM输出就好,另外 A 、/A、 B 三路可以使用比较切换输出模式,最好结合DMA来完成比较方便。

实现这套波形是可以的。

使用特权

评论回复
5
tcdbobo|  楼主 | 2019-5-29 09:41 | 只看该作者
香水城 发表于 2019-5-28 22:40
一个4路,用TIM1的四个通道。

/B路可以使用PWM输出就好,另外 A 、/A、 B 三路可以使用比较切换输出模式, ...

谢谢!

使用特权

评论回复
6
香水城| | 2019-5-29 20:01 | 只看该作者

实现起来可能有点难度,实在不行的话私信给我。我发参考代码给你。

使用特权

评论回复
7
tcdbobo|  楼主 | 2019-5-31 08:56 | 只看该作者
香水城 发表于 2019-5-29 20:01
实现起来可能有点难度,实在不行的话私信给我。我发参考代码给你。 ...

您好,我现在的权限,私信不了。

无法私信.jpg (38.62 KB )

无法私信.jpg

955385cf07b8ee8503.png (19.92 KB )

955385cf07b8ee8503.png

使用特权

评论回复
8
tcdbobo|  楼主 | 2019-5-31 09:05 | 只看该作者
香水城 发表于 2019-5-29 20:01
实现起来可能有点难度,实在不行的话私信给我。我发参考代码给你。 ...

请问,要同时输出这4路波形,光在cubeMX里设置好像不行,要在程序里修改哪些地方吧???有您的参考代码最好。可以对照参考一下。可是加不了您好友,也私信不了。

cubeMX 输出比较.jpg (201.76 KB )

cubeMX 输出比较.jpg

tim.jpg (328.24 KB )

tim.jpg

使用特权

评论回复
9
香水城| | 2019-6-3 12:06 | 只看该作者
tcdbobo 发表于 2019-5-31 09:05
请问,要同时输出这4路波形,光在cubeMX里设置好像不行,要在程序里修改哪些地方吧???有您的参考代码 ...

你可以到这个链接看看。

STM32定时器比较输出切换模式之应用实例STM32定时器比较输出切换模式之应用实例

使用特权

评论回复
10
tcdbobo|  楼主 | 2019-6-3 16:43 | 只看该作者
香水城 发表于 2019-6-3 12:06
你可以到这个链接看看。

STM32定时器比较输出切换模式之应用实例STM32定时器比较输出切换模式之应用实例 ...

收到,谢谢!

使用特权

评论回复
11
tcdbobo|  楼主 | 2019-6-4 14:24 | 只看该作者
香水城 发表于 2019-6-3 12:06
你可以到这个链接看看。

STM32定时器比较输出切换模式之应用实例STM32定时器比较输出切换模式之应用实例 ...

您好,我按照**中cubeMX里的设置后,输出代码,编译通过没有错误,但是加上**中2.2 2.3 2.4代码后,再编译就出错了,我按错误提示看,以为是少了个括号,或者是那个函数的大小写错了,但手敲代码后,keil前还是有红色小X,请帮助看一下,我把错误截图发上来了。谢谢!
另外,我以为是添加代码的位置不对,一开始我是在main.c里增加的代码,后来我又在tim.c里写了,还是一样错误。

使用特权

评论回复
12
tcdbobo|  楼主 | 2019-6-4 14:34 | 只看该作者
本帖最后由 tcdbobo 于 2019-6-4 14:38 编辑
香水城 发表于 2019-6-3 12:06
你可以到这个链接看看。

STM32定时器比较输出切换模式之应用实例STM32定时器比较输出切换模式之应用实例 ...

另外一个问题,**中提到的 我们这里假设定时器的计数器采用向上计数模式,每记800个时钟单位为1个计数周期。【向上计数模式,ARR=800-1】在cubeMX里是不是相应的需要修改为0x31F.已附图,请老师看一下。

ARR值.jpg (309.04 KB )

ARR值.jpg

使用特权

评论回复
13
香水城| | 2019-6-5 15:35 | 只看该作者
tcdbobo 发表于 2019-6-4 14:34
另外一个问题,**中提到的 我们这里假设定时器的计数器采用向上计数模式,每记800个时钟单位为1个计数周 ...

hi,我是基于STM32CUBE库生成的也验证过了。

使用特权

评论回复
14
香水城| | 2019-6-5 16:23 | 只看该作者


使用特权

评论回复
15
tcdbobo|  楼主 | 2019-6-6 11:49 | 只看该作者
香水城 发表于 2019-6-5 15:35
hi,我是基于STM32CUBE库生成的也验证过了。

我按照您的截图,把代码加到 /* USER CODE BEGIN 2 */  和 /* USER CODE END 2 */后,编译后错误就剩6个了,都是相同类型的error,如下截图所示,我在网上查了一下,关于这个错误的原因,也截图如下,您帮忙看一下,是不是我在哪个文件里少定义了变量。

6个error.jpg (457.75 KB )

6个error.jpg

error 原因.jpg (271.53 KB )

error 原因.jpg

使用特权

评论回复
16
香水城| | 2019-6-6 11:59 | 只看该作者
你使用最新的Cube库就好了。

使用特权

评论回复
17
tcdbobo|  楼主 | 2019-6-10 12:03 | 只看该作者
香水城 发表于 2019-6-6 11:59
你使用最新的Cube库就好了。

已经换成最新版本的cubeMX,编译后还是有变量未定义的错误,您可否把“hdma_tim1_ch1” “hdma_tim1_ch2” “hdma_tim1_ch3”变量是在哪里定义的发给截图给我。谢谢勒!!!

error.jpg (485.47 KB )

error.jpg

cube.jpg (170.9 KB )

cube.jpg

使用特权

评论回复
18
tcdbobo|  楼主 | 2019-6-10 14:15 | 只看该作者
香水城 发表于 2019-6-6 11:59
你使用最新的Cube库就好了。

刚才又在keil里,编译了一下,选中三个变量然后右键(F12),go to define.是可以在tim.c文件中,找到变量定义的。另外DMA_handleTypeDef这个结构体也能在stm32f4xx_hal_dma.h中找到。关键是我在main.c里清楚的是能看到include"tim.h"的,那为什么编译后还是有错误。我把keil的版本也截了图。及其他变量的截图。发上来了。

1.jpg (407.72 KB )

1.jpg

2.jpg (308.56 KB )

2.jpg

3.jpg (281.25 KB )

3.jpg

4.jpg (389.21 KB )

4.jpg

DMA cubeMX.jpg (222.71 KB )

DMA cubeMX.jpg

main.jpg (286.05 KB )

main.jpg

keil.jpg (185.42 KB )

keil.jpg

使用特权

评论回复
19
香水城| | 2019-6-10 16:35 | 只看该作者

从你的截图看,你的工程文件似乎并不是从CUBEMX基于cube库生成的。



使用特权

评论回复
20
tcdbobo|  楼主 | 2019-6-11 09:55 | 只看该作者
本帖最后由 tcdbobo 于 2019-6-11 10:30 编辑
香水城 发表于 2019-6-10 16:35
从你的截图看,你的工程文件似乎并不是从CUBEMX基于cube库生成的。


使用特权

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

本版积分规则

22

主题

83

帖子

0

粉丝