STM32控制步进电机实现精确转动
来源:互联网 发布:互联网大数据查询 编辑:程序博客网 时间:2024/04/25 18:59
驱动方式为A-AB-B-BC-C-CD-D-DA-A
使用延时函数实现
主函数
#include "dj.h"#include "delay.h"#include "sys.h"#include "key_led.h"//ALIENTEK miniSTM32¿ª·¢°åʵÑé1//ÅÜÂíµÆʵÑé //¼¼ÊõÖ§³Ö£ºwww.openedv.com//¹ãÖÝÊÐÐÇÒíµç×ӿƼ¼ÓÐÏÞ¹«Ë¾ int main(){ int i=512; //ÕâÀïתһȦÐèÒª4096¸öÂö³åÐźŠתһȦiÉèÖÃΪ512u32 t=550; //¼ÆËãµÃ305Ϊ10sµÄʱ¼ä£¬ÕâÀïÓÐ1sµÄÎó²î£¬¹Ê¼õÈ¥ÁË1sµÄʱ¼ä //1s¼ÆËãµÃµ½ËùÐèÑÓʱΪ30 305-30=275//´ËÍ⣬¼ÆËãÁË5sËùÐèµÄÑÓʱ£¬275/2=137.5 È¡137 ²âµÃʱ¼äÎó²îÔÚ0.2s×óÒÔÄÚ delay_init(); //ÑÓʱº¯Êý³õʼ»¯Dj_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú while(1) { while(i) { A1_H;B1_L;C1_L;D1_L; delay_us(t); A1_H;B1_H;C1_L;D1_L; delay_us(t); A1_L;B1_H;C1_L;D1_L; delay_us(t); A1_L;B1_H;C1_H;D1_L; delay_us(t); A1_L;B1_L;C1_H;D1_L; delay_us(t); A1_L;B1_L;C1_H;D1_H; delay_us(t); A1_L;B1_L;C1_L;D1_H; delay_us(t); A1_H;B1_L;C1_L;D1_H; delay_us(t); i--; } }}
#include "stm32f10x.h"#include "sys.h"#include "dj.h"#include "delay.h"void Dj_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //ʹÄÜPA,PD¶Ë¿ÚʱÖÓ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //LED0-->PA.8 ¶Ë¿ÚÅäÖà GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //ÍÆÍìÊä³ö GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO¿ÚËÙ¶ÈΪ50MHz GPIO_ResetBits(GPIOA,GPIO_Pin_0); //PA.8 Êä³ö¸ß GPIO_Init(GPIOA, &GPIO_InitStructure); //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOA.8 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //LED1-->PD.2 ¶Ë¿ÚÅäÖÃ, ÍÆÍìÊä³ö GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //ÍÆÍìÊä³ö GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO¿ÚËÙ¶ÈΪ50MHz GPIO_ResetBits(GPIOA,GPIO_Pin_1); //PD.2 Êä³ö¸ß GPIO_Init(GPIOA, &GPIO_InitStructure); //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOA.8 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //LED1-->PD.2 ¶Ë¿ÚÅäÖÃ, ÍÆÍìÊä³ö GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //ÍÆÍìÊä³ö GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO¿ÚËÙ¶ÈΪ50MHz GPIO_ResetBits(GPIOA,GPIO_Pin_2); //PD.2 Êä³ö¸ß GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; //LED1-->PD.2 ¶Ë¿ÚÅäÖÃ, ÍÆÍìÊä³ö GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //ÍÆÍìÊä³ö GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO¿ÚËÙ¶ÈΪ50MHz GPIO_ResetBits(GPIOA,GPIO_Pin_3); //PD.2 Êä³ö¸ß GPIO_Init(GPIOA, &GPIO_InitStructure); //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOA.8}
dj.h
#ifndef __DJ_H#define __DJ_H #include "sys.h"////////////////////////////////////////////////////////////////////////////////// //本程序只供学习使用,未经作者许可,不得用于其它任何用途//ALIENTEK miniSTM32开发板//按键驱动代码 //正点原子@ALIENTEK//技术论坛:www.openedv.com//修改日期:2012/9/3//版本:V1.0//版权所有,盗版必究。//Copyright(C) 广州市星翼电子科技有限公司 2009-2019//All rights reserved ////////////////////////////////////////////////////////////////////////////////// #define A1_H GPIO_SetBits(GPIOA,GPIO_Pin_0)#define A1_L GPIO_ResetBits(GPIOA,GPIO_Pin_0)#define B1_H GPIO_SetBits(GPIOA,GPIO_Pin_1)#define B1_L GPIO_ResetBits(GPIOA,GPIO_Pin_1)#define C1_H GPIO_SetBits(GPIOA,GPIO_Pin_2)#define C1_L GPIO_ResetBits(GPIOA,GPIO_Pin_2)#define D1_H GPIO_SetBits(GPIOA,GPIO_Pin_3)#define D1_L GPIO_ResetBits(GPIOA,GPIO_Pin_3)/*电机转动指令*//*#define a {A1_H,B1_L,C1_L,D1_L}#define b {A1_H,B1_H,C1_L,D1_L}#define c {A1_l,B1_H,C1_L,D1_L}#define d {A1_L,B1_H,C1_H,D1_L}#define e {A1_L,B1_L,C1_H,D1_L}#define f {A1_L,B1_L,C1_H,D1_H}#define g {A1_L,B1_L,C1_L,D1_H}#define h {A1_H,B1_L,C1_L,D1_H}*/void Dj_Init(void); //IO初始化 #endif
阅读全文
0 0
- STM32控制步进电机实现精确转动
- STM32控制步进电机
- stm32 DMA步进电机控制
- STM32在定时器中控制步进电机
- stm32 T型加速控制步进电机
- 利用Bresenham算法控制多部步进电机匀速转动
- 利用Bresenham算法控制多部步进电机匀速转动
- 利用Bresenham算法控制多部步进电机匀速转动
- 利用Bresenham算法控制多部步进电机匀速转动
- 利用Bresenham算法控制多部步进电机匀速转动
- 利用Bresenham算法控制多部步进电机匀速转动
- 利用Bresenham算法控制多部步进电机匀速转动
- 利用Bresenham算法控制多部步进电机匀速转动
- 利用Bresenham算法控制多部步进电机匀速转动
- 利用Bresenham算法控制多部步进电机匀速转动
- 利用Bresenham算法控制多部步进电机匀速转动
- 利用Bresenham算法控制多部步进电机匀速转动
- 利用Bresenham算法控制多部步进电机匀速转动
- 运行shell脚本的三种方式
- 14个常用的javaScript正则表达式
- 刷题记录luoguP1972 [SDOI2009]HH的项链
- 最大公约数算法
- 宏定义中的反斜杠"\"和宏定义的细节说明
- STM32控制步进电机实现精确转动
- 静态代码块,构造代码块,构造方法的加载执行顺序研究
- C语言实现C++的封装继承与多态
- 手机ios安卓扫描车牌识别SDK
- 2017年6月,两个手游换皮项目,第六,七
- 第8,9个项目,手游开发,棋牌
- es6 语法结构和列子
- 20170729补充一下Python和Tensorflow的安装过程
- Qt学习-入门1