久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2599|回復: 2
收起左側

STM32步進電機源碼

[復制鏈接]
ID:799384 發表于 2020-7-12 09:42 | 顯示全部樓層 |閱讀模式
motor.c
#include "motor.h"  //導入led頭文件
#include "stm32f10x.h"  //導入STM32官方庫
#include "stm32f10x_rcc.h"  //導入STM32的RCC時鐘庫
#include "delay.h"       //延時庫

void RCC_Configuration(void)
{
  SystemInit();
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE , ENABLE);
}

{
  GPIO_InitTypeDef GPIO_InitStructure;                                //端口配置結構體

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;                        //PD3管腳
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //推挽輸出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //口線翻轉速度為50MHz
  GPIO_Init(GPIOD, &GPIO_InitStructure);                        //初始化端口      

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;                        //PD6管腳
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //推挽輸出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //口線翻轉速度為50MHz
  GPIO_Init(GPIOD, &GPIO_InitStructure);                        //初始化端口      

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;                //PD12管腳
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //推挽輸出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //口線翻轉速度為50MHz
  GPIO_Init(GPIOD, &GPIO_InitStructure);                        //初始化端口      

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;                        //PE4管腳
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //推挽輸出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //口線翻轉速度為50MHz
  GPIO_Init(GPIOE, &GPIO_InitStructure);                        //初始化端口      


}
//電機正轉函數
void ZhengZhuan(u16 tt)
{
            //1000         
          GPIO_SetBits(GPIOD, GPIO_Pin_3);
          GPIO_ResetBits(GPIOD, GPIO_Pin_6);
          GPIO_ResetBits(GPIOD, GPIO_Pin_12);
          GPIO_ResetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);
              //1100
          GPIO_SetBits(GPIOD, GPIO_Pin_3);
          GPIO_SetBits(GPIOD, GPIO_Pin_6);
          GPIO_ResetBits(GPIOD, GPIO_Pin_12);
          GPIO_ResetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);
              //0100
          GPIO_ResetBits(GPIOD, GPIO_Pin_3);
          GPIO_SetBits(GPIOD, GPIO_Pin_6);
          GPIO_ResetBits(GPIOD, GPIO_Pin_12);
          GPIO_ResetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);
          //0110  
          GPIO_ResetBits(GPIOD, GPIO_Pin_3);
          GPIO_SetBits(GPIOD, GPIO_Pin_6);
          GPIO_SetBits(GPIOD, GPIO_Pin_12);
          GPIO_ResetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);
                  //0010  
          GPIO_ResetBits(GPIOD, GPIO_Pin_3);
          GPIO_ResetBits(GPIOD, GPIO_Pin_6);
          GPIO_SetBits(GPIOD, GPIO_Pin_12);
          GPIO_ResetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);
          //0011
          GPIO_ResetBits(GPIOD, GPIO_Pin_3);
          GPIO_ResetBits(GPIOD, GPIO_Pin_6);
          GPIO_SetBits(GPIOD, GPIO_Pin_12);
          GPIO_SetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);
          //0001
          GPIO_ResetBits(GPIOD, GPIO_Pin_3);
          GPIO_ResetBits(GPIOD, GPIO_Pin_6);
          GPIO_ResetBits(GPIOD, GPIO_Pin_12);
          GPIO_SetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);
                  //1001
          GPIO_SetBits(GPIOD, GPIO_Pin_3);
          GPIO_ResetBits(GPIOD, GPIO_Pin_6);
          GPIO_ResetBits(GPIOD, GPIO_Pin_12);
          GPIO_SetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);
}
//電機反轉函數
void FanZhuan(u16 tt)
{
          //1001         
          GPIO_SetBits(GPIOD, GPIO_Pin_3);
          GPIO_ResetBits(GPIOD, GPIO_Pin_6);
          GPIO_ResetBits(GPIOD, GPIO_Pin_12);
          GPIO_SetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);
                  //0001
          GPIO_ResetBits(GPIOD, GPIO_Pin_3);
          GPIO_ResetBits(GPIOD, GPIO_Pin_6);
          GPIO_ResetBits(GPIOD, GPIO_Pin_12);
          GPIO_SetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);
          //0011
          GPIO_ResetBits(GPIOD, GPIO_Pin_3);
          GPIO_ResetBits(GPIOD, GPIO_Pin_6);
          GPIO_SetBits(GPIOD, GPIO_Pin_12);
          GPIO_SetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);
          //0010  
          GPIO_ResetBits(GPIOD, GPIO_Pin_3);
          GPIO_ResetBits(GPIOD, GPIO_Pin_6);
          GPIO_SetBits(GPIOD, GPIO_Pin_12);
          GPIO_ResetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);        
          //0110
          GPIO_ResetBits(GPIOD, GPIO_Pin_3);
          GPIO_SetBits(GPIOD, GPIO_Pin_6);
          GPIO_SetBits(GPIOD, GPIO_Pin_12);
          GPIO_ResetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);
                  //0100
          GPIO_ResetBits(GPIOD, GPIO_Pin_3);
          GPIO_SetBits(GPIOD, GPIO_Pin_6);
          GPIO_ResetBits(GPIOD, GPIO_Pin_12);
          GPIO_ResetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);
          //1100
          GPIO_SetBits(GPIOD, GPIO_Pin_3);
          GPIO_SetBits(GPIOD, GPIO_Pin_6);
          GPIO_ResetBits(GPIOD, GPIO_Pin_12);
          GPIO_ResetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);
          //1000         
          GPIO_SetBits(GPIOD, GPIO_Pin_3);
          GPIO_ResetBits(GPIOD, GPIO_Pin_6);
          GPIO_ResetBits(GPIOD, GPIO_Pin_12);
          GPIO_ResetBits(GPIOE, GPIO_Pin_4);
          delay_ms1(tt);                  
}

void delay_ms1(u16 nms)
{
         u32 temp;
         SysTick->LOAD = 9000*nms;
         SysTick->VAL=0X00;//清空計數器
         SysTick->CTRL=0X01;//使能,減到零是無動作,采用外部時鐘源
         do
         {
          temp=SysTick->CTRL;//讀取當前倒計數值
         }while((temp&0x01)&&(!(temp&(1<<16))));//等待時間到達
         SysTick->CTRL=0x00; //關閉計數器
         SysTick->VAL =0X00; //清空計數器
}

main.c
#include "stm32f10x.h"
#include "stm32f10x_rcc.h"
#include "misc.h"
//#include "delay.h"

void RCC_Configuration(void);
void GPIO_Configuration(void);
void ZhengZhuan(u16 tt);
void FanZhuan(u16 tt);
void delay_ms1(u16 nms);


int main(void)
{
  RCC_Configuration();        //系統時鐘設置及外設時鐘使能                  
  GPIO_Configuration();
  //delay_init();  //延時函數初始化

        while (1)
                 {
                // ZhengZhuan(3);//逆時針                              
            
                 FanZhuan(10);//順時針
               
            
                 }

          GPIO_ResetBits(GPIOD, GPIO_Pin_3);
          GPIO_ResetBits(GPIOD, GPIO_Pin_6);
          GPIO_ResetBits(GPIOD, GPIO_Pin_12);
          GPIO_ResetBits(GPIOE, GPIO_Pin_4);
  //}
}


回復

使用道具 舉報

ID:606388 發表于 2020-7-15 08:38 | 顯示全部樓層
樓主,能否上傳工程文件,謝謝
回復

使用道具 舉報

ID:364183 發表于 2020-7-15 13:07 | 顯示全部樓層
qingyemurong 發表于 2020-7-15 08:38
樓主,能否上傳工程文件,謝謝

我以前傳過 你下載看看吧
不知道適不適合你
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 狠狠爱免费视频 | 国产精品免费av | 亚洲精品一区二区三区 | 久草热在线| 视频一区二区在线观看 | 精品国产乱码一区二区三区 | 亚洲国产成人精 | 成人精品在线视频 | 久久精品国产久精国产 | 在线免费中文字幕 | 国产精产国品一二三产区视频 | 久久精品亚洲精品 | 国产一区二区三区视频在线观看 | 一级h片 | 国产高清精品一区二区三区 | 人人草人人干 | 日韩高清中文字幕 | 曰韩三级 | 午夜男人视频 | 成人免费视频在线观看 | 亚洲高清在线 | 国内精品久久久久久 | 六月色婷| 精品久久久一区二区 | 色资源站| 国产99热精品 | 观看av | 久久精品无码一区二区三区 | 精品一区二区三区视频在线观看 | 美女黄18岁以下禁止观看 | h视频在线免费观看 | 欧美成人精品激情在线观看 | 成人一区二区三区 | 黄色一级免费 | 亚洲精品一区二区三区 | 中文字幕第90页 | 久久久激情视频 | 在线不卡视频 | 久久久免费观看视频 | 四虎影院美女 | 美女露尿口视频 |