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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2693|回復: 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);
  //}
}


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

使用道具 舉報

沙發
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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩电影在线一区 | 999re5这里只有精品 | 成人黄色在线 | 国产成人av电影 | 午夜激情在线视频 | 亚洲精品一区在线观看 | 在线中文字幕日韩 | 精品国产乱码一区二区三 | 国产成人在线播放 | 国产一区二区在线视频 | 伊人免费视频二 | 91电影| 一区网站| 激情一区二区三区 | 欧美精品网 | 国产一区二区免费 | 在线免费亚洲视频 | 久久久久久久久综合 | 伊人青青久久 | 欧美日韩中文字幕在线 | 一级毛片在线视频 | 久久99视频这里只有精品 | 国产ts人妖一区二区三区 | 久久精品成人热国产成 | 国产欧美一区二区三区在线看 | 久久精品国产一区二区电影 | 欧美伊人久久久久久久久影院 | 精品无码久久久久久久动漫 | 国外成人在线视频 | 免费一看一级毛片 | 2023亚洲天堂 | 天天拍天天插 | 18av在线播放| 亚洲国产精品成人综合久久久 | 999久久久久久久 | 欧美久久一区二区 | 亚洲一区二区久久 | 国产片侵犯亲女视频播放 | 在线观看视频一区二区三区 | 狠狠操电影 | 国产伦精品一区二区三区照片91 |