OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4434|回复: 5

两个定时器来驱动两个电机,同时使用时无法正反转

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2017-10-23
在线时间
2 小时
发表于 2018-5-28 17:14:56 | 显示全部楼层 |阅读模式
1金钱
我同TIM8来驱动步进电机正反装,用TIM1来控制舵机旋转,通过串口想单片机发送指令,来控制步进电机的旋转角度。在没加入舵机旋转转时,步进电机一切正常,正反装都可以用。加入舵机旋转时,步进电机就只能向一个方向转了,知道的告诉我一声。下面的代码是不舵机部分注释掉的代码,全部的文件在附件里面。
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "key.h"
#include "usmart.h"
#include "driver.h"
#include "pwm.h"
//ALIENTEK Mini STM32¿a·¢°å
//2½½øμç»úÇy¶ˉÆ÷ 2aêÔ′úÂë  
//¼¼êõÖ§3Ö£owww.openedv.com
//1ãÖYêDDÇòíμç×ó¿Æ¼¼óDÏT1«Ë¾

int main(void)
{
        int t;       
         int wz=0;
        int dir;
        u8 i;
        u8 keyval;
        NVIC_Configuration();
        delay_init();                     //Ñóê±oˉêy3õê¼»ˉ          
        uart_init(9600);                 //′®¿ú3õê¼»ˉÎa115200
        usmart_dev.init(72);         //3õê¼»ˉUSMART                                        
        LED_Init();                                //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú
KEY_Init();                                //3õê¼»ˉ°′¼ü
        Driver_Init();                //Çy¶ˉÆ÷3õê¼»ˉ
        TIM8_OPM_RCR_Init(999,72-1); //1MHz¼ÆêyÆμÂê  μ¥Âö3å+ÖØ¸′¼Æêyģ꽠      
        TIM1_PWM_Init(199,7199);//(7200*200)/72000000=0.02=20ms
        while(1)
        {                                                    
if(USART_RX_STA&0x8000)
                {       
        t=USART_RX_BUF[0]-'0';
                //t=(USART1->DR-'0');
                if(t-wz>0)
                {
                        dir=CCW;
                }
                else
                dir=CW;
                if((t-wz)!=0)
                {       
                switch (abs(t-wz))
                {
                        case 1:
                {
                        Locate_Rle(800,500,dir);
                        delay_ms(1600);
                        break;
                }
                        case 2:
                {
                        Locate_Rle(1600,500,dir);
                        delay_ms(3200);
                        break;
                }
                case 3:
                {
                        Locate_Rle(2400,500,dir);
                        delay_ms(4800);
                        break;
                }       
        }
}
                wz=t;
USART_RX_STA=0;
//                delay_ms(5000);
//                delay_ms(5000);
//                delay_ms(5000);
//        for(i=0;i<2;i++)
//                {
//                TIM_SetCompare1(TIM1,177); //2ms  
//    delay_ms(5000);           //&#187;ù×ùDy×a2&#187;&#191;éò&#212;μ&#189;μ×2&#191;£&#172;&#203;ùò&#212;2&#187;&#209;&#161;×&#197;175&#182;&#248;&#209;&#161;&#212;&#241;177
//                TIM_SetCompare1(TIM1,185); //1.5ms
//                        delay_ms(5000);           /*×ù&#187;úμ&#196;Dy×a£&#172;&#207;èDy×aoó&#187;&#214;&#184;′*/
//                }
}

               
                keyval=KEY_Scan(0);
                if(keyval==WKUP_PRES)
                {
                        Locate_Abs(0,500);//°′&#207;&#194;WKUP£&#172;&#187;&#216;á&#227;μ&#227;
                }else if(keyval==KEY0_PRES)
                {
                        Locate_Rle(800,500,CW);//°′&#207;&#194;KEY0£&#172;ò&#212;500Hzμ&#196;&#198;μ&#194;ê &#203;3ê±&#213;&#235;·¢200&#194;&#246;3&#229;
                }else if(keyval==KEY1_PRES)
                {
                        Locate_Rle(800,500,CCW);//°′&#207;&#194;KEY1£&#172;ò&#212;500Hzμ&#196;&#198;μ&#194;ê &#196;&#230;ê±&#213;&#235;·¢400&#194;&#246;3&#229;
                }                                       

        }       
}       


(库函数版本,适合MiniSTM32开发板)扩展实验18 ATK-2MD4850步进电机驱动器实验.rar

2.28 MB, 下载次数: 65

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-5-29 01:04:58 | 显示全部楼层
感觉像是电源功率不足导致的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2017-10-23
在线时间
2 小时
 楼主| 发表于 2018-5-29 17:00:24 | 显示全部楼层
正点原子 发表于 2018-5-29 01:04
感觉像是电源功率不足导致的

应该不是 步进电机是单独供电的 而且是可以转的 但是不能正反转
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2017-10-23
在线时间
2 小时
 楼主| 发表于 2018-5-29 17:05:17 | 显示全部楼层
ljp2172216082 发表于 2018-5-29 17:00
应该不是 步进电机是单独供电的 而且是可以转的 但是不能正反转

如果这是电源功率不足,该怎么解决
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2017-10-23
在线时间
2 小时
 楼主| 发表于 2018-5-29 17:25:56 | 显示全部楼层
换到5V上面 串口显示打不开
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-5-31 01:31:30 | 显示全部楼层
ljp2172216082 发表于 2018-5-29 17:05
如果这是电源功率不足,该怎么解决

加大功率。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-6 20:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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