博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
步进电机驱动
阅读量:4574 次
发布时间:2019-06-08

本文共 2417 字,大约阅读时间需要 8 分钟。

/*stepmotor.h*/#ifndef _STEPMOTOR_H#define _STEPMOTOR_H#include "sys.h"#include "delay.h"#define AA PDout(8) #define aa PDout(9)#define BB PDout(10) #define bb PDout(11)//单4#define ON_1 {AA=1;aa=0;BB=0;bb=0;} #define ON_2 {AA=0;aa=0;BB=0;bb=1;}#define ON_3 {AA=0;aa=1;BB=0;bb=0;}#define ON_4 {AA=0;aa=0;BB=1;bb=0;}//双4#define ON_D1 {AA=0;aa=1;BB=1;bb=0;}#define ON_D2 {AA=1;aa=0;BB=1;bb=0;}#define ON_D3 {AA=1;aa=0;BB=0;bb=1;}#define ON_D4 {AA=0;aa=1;BB=0;bb=1;}//单双8拍#define ON_DD1 {AA=0;aa=1;BB=0;bb=0;}#define ON_DD2 {AA=0;aa=1;BB=1;bb=0;}#define ON_DD3 {AA=0;aa=0;BB=1;bb=0;}#define ON_DD4 {AA=1;aa=0;BB=1;bb=0;}#define ON_DD5 {AA=1;aa=0;BB=0;bb=0;}#define ON_DD6 {AA=1;aa=0;BB=0;bb=1;}#define ON_DD7 {AA=0;aa=0;BB=0;bb=1;}#define ON_DD8 {AA=0;aa=1;BB=0;bb=1;}#define OFF_ALL {AA=0;aa=0;BB=0;bb=0;} extern void Motor_GPIO_Init(void);extern void Motor_4(u16 time);extern void Motor_D4(u16 time);extern void Motor_8(u16 time);extern void Motor_8_back(u16 time); //反转#endif
/*stepmotor.c*/#include "stepmotor.h"void Motor_GPIO_Init(void){    GPIO_InitTypeDef  GPIO_InitStructure;    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);             GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;                     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;              GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;             GPIO_Init(GPIOD, &GPIO_InitStructure);                         //GPIO_SetBits(GPIOD,GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);        }void Motor_4(u16 time){    ON_1;    delay_ms(time);    ON_2;    delay_ms(time);    ON_3;    delay_ms(time);    ON_4;    delay_ms(time);}void Motor_D4(u16 time){    ON_D1;    delay_ms(time);    ON_D2;    delay_ms(time);    ON_D3;    delay_ms(time);    ON_D4;    delay_ms(time);}void Motor_8(u16 time)  //执行一次转7.2度{
//循环50次转360度,8拍每拍0.9度 ON_DD1; delay_us(time); ON_DD2; delay_us(time); ON_DD3; delay_us(time); ON_DD4; delay_us(time); ON_DD5; delay_us(time); ON_DD6; delay_us(time); ON_DD7; delay_us(time); ON_DD8; delay_us(time);}void Motor_8_back(u16 time) //反转{ ON_DD8; delay_us(time); ON_DD7; delay_us(time); ON_DD6; delay_us(time); ON_DD5; delay_us(time); ON_DD4; delay_us(time); ON_DD3; delay_us(time); ON_DD2; delay_us(time); ON_DD1; delay_us(time);}

 

转载于:https://www.cnblogs.com/ht-beyond/p/4304649.html

你可能感兴趣的文章
捕获与异常
查看>>
数据适配 DataAdapter对象
查看>>
有序列表ol和定义列表dl,dt,dd
查看>>
联想小新Air 15 安装黑苹果macOS High Sierra 10.13.6过程
查看>>
公共POI导出Excel方法–java
查看>>
次短路——Dijkstra
查看>>
C++ compile issue
查看>>
安卓中的shape
查看>>
站立会议总结08
查看>>
C++ stat判断路径是文件还是目录
查看>>
动态代理
查看>>
ie11下,接受postmessage返回的信息
查看>>
7 big mistakes to avoid in first year of retirement
查看>>
小技巧
查看>>
python接口自动化20-requests获取响应时间(elapsed)与超时(timeout) ok试了 获取响应时间的...
查看>>
linux打包压缩与搜索命令
查看>>
冒泡排序
查看>>
windows phone 三种数据共享的方式(8)
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第1节 继承_13-Java继承的三个特点...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第1节 异常_14_自定义异常类的练习...
查看>>