找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2646|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

用MINI版STM32驅(qū)動步進(jìn)電機(jī)遇到了問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:325299 發(fā)表于 2018-12-9 13:36 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
5黑幣
在控制步進(jìn)電機(jī)的過程中,實(shí)現(xiàn)步進(jìn)電機(jī)的正傳---停止---反轉(zhuǎn)---停止過程,本想實(shí)現(xiàn)一次該過程,但每次都執(zhí)行了三次。
```
int main(void)
{       
        delay_init();                     //延時函數(shù)初始化          
        Moto_Init();
        LED_Init();
        int j=0;
        int k=0;
        for(k=0;k<500;k++)
         {  
       Motorcw();   //電機(jī)正傳
         }
         MotorStop();
         delay_ms(5000);
   for(j=0;j<500;j++)
         {  
       Motorccw();   //電機(jī)反傳
         }
         MotorStop();
         delay_ms(5000);
}
```
請大佬指點(diǎn)。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:375161 發(fā)表于 2018-12-9 21:17 | 只看該作者
能說明一下電機(jī)正轉(zhuǎn)和電機(jī)反轉(zhuǎn)的函數(shù)具體是怎么編寫的嗎?
回復(fù)

使用道具 舉報

板凳
ID:325299 發(fā)表于 2018-12-10 22:18 | 只看該作者
nikola 發(fā)表于 2018-12-9 21:17
能說明一下電機(jī)正轉(zhuǎn)和電機(jī)反轉(zhuǎn)的函數(shù)具體是怎么編寫的嗎?

#include "moto.h"
#include "delay.h"
#include "led.h"
//步進(jìn)電機(jī)相關(guān)IO口初始化
// IN4:        PC13
// IN3:        PC0
// IN2:        PC2
// IN2:        PC2
//相序
uint16_t phasecw[4] ={0x2000,0x0001,0x0004,0x0008};// D-C-B-A 電機(jī)正傳
uint16_t phaseccw[4]={0x0008,0x0004,0x0001,0x2000};// A-B-C-D 電機(jī)反轉(zhuǎn)

//IO口初始化
void Moto_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);                        //使能時鐘
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;           // IN4:        PC13
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        //推挽輸出               
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //50MHz速率
        GPIO_Init(GPIOC, &GPIO_InitStructure);                       
        GPIO_ResetBits(GPIOC,GPIO_Pin_13);                                        //輸出低電平

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;           // IN3:        PC0
        GPIO_Init(GPIOC, &GPIO_InitStructure);
        GPIO_ResetBits(GPIOC,GPIO_Pin_0);
  
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;          // IN2:        PC2
        GPIO_Init(GPIOC, &GPIO_InitStructure);  
        GPIO_ResetBits(GPIOC,GPIO_Pin_2);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;          // IN2:        PC2
        GPIO_Init(GPIOC, &GPIO_InitStructure);
        GPIO_ResetBits(GPIOC,GPIO_Pin_3);
}


//電機(jī)正轉(zhuǎn)
void Motorcw(void)
{
        uint8_t i;
          for(i=0;i<4;i++)
            {
                  GPIO_Write(GPIOC,phasecw);
                   delay_ms(3);  //最快速度
          }
}

//電機(jī)反轉(zhuǎn)
void Motorccw(void)
{
        uint8_t i;
        for(i=0;i<4;i++)
          {
                  GPIO_Write(GPIOC,phaseccw);
                   delay_ms(3);
           }
}

//電機(jī)停止
void MotorStop(void)
{
        GPIO_Write(GPIOC,0x0000);
}
回復(fù)

使用道具 舉報

地板
ID:669687 發(fā)表于 2020-1-7 18:40 | 只看該作者
你那個循環(huán)就是執(zhí)行了三次啊,單純循環(huán)去了,i沒有傳到數(shù)組下標(biāo)里。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表