/* 两个ULN2003驱动两个5线4相步进电机 */

/*  步进电机四相端口*/

#define pMotor_A_A_Init()                        GPIO_Init(GPIOC,GPIO_PIN_7,GPIO_MODE_OUT_PP_LOW_FAST)

#define pMotor_A_B_Init()                        GPIO_Init(GPIOC,GPIO_PIN_6,GPIO_MODE_OUT_PP_LOW_FAST)

#define pMotor_A_C_Init()                        GPIO_Init(GPIOC,GPIO_PIN_5,GPIO_MODE_OUT_PP_LOW_FAST)

#define pMotor_A_D_Init()                        GPIO_Init(GPIOC,GPIO_PIN_3,GPIO_MODE_OUT_PP_LOW_FAST)

#define pMotor_B_A_Init()                        GPIO_Init(GPIOD,GPIO_PIN_0,GPIO_MODE_OUT_PP_LOW_FAST)

#define pMotor_B_B_Init()                        GPIO_Init(GPIOD,GPIO_PIN_2,GPIO_MODE_OUT_PP_LOW_FAST)

#define pMotor_B_C_Init()                        GPIO_Init(GPIOD,GPIO_PIN_3,GPIO_MODE_OUT_PP_LOW_FAST)

#define pMotor_B_D_Init()                        GPIO_Init(GPIOD,GPIO_PIN_4,GPIO_MODE_OUT_PP_LOW_FAST)

/*  A   AB   B    BC   C    CD   D    DA  */

uint8_t Beat_A_Code[8] = {0x80,0xC0,0x40,0x60,0x20,0x28,0x08,0x88}; //步进电机A四相八拍驱动

/*  A   AB   B    BC   C    CD   D    DA  */

uint8_t Beat_B_Code[8] = {0x01,0x05,0x04,0x0C,0x08,0x18,0x10,0x11}; //步进电机B四相八拍驱动

int16_t motor_A_Beats = 0;

int16_t motor_B_Beats = 0;

uint8_t index_A = 0;

uint8_t index_B = 0;

#pragma vector=0x19

__interrupt void TIM4_UPD_OVF_IRQHandler(void) //定时中断 1ms

{

/* 步进电机A转动控制流量值大于4L */

if(motor_A_Beats != 0)

{

if(motor_A_Beats > 0)                //正转

{

index_A++;

index_A &= 0x07;

motor_A_Beats--;

}

else                                            //反转

{

index_A--;

index_A &= 0x07;

motor_A_Beats++;

}

temp0 = GPIOC->ODR;

temp0 &= 0x17;

temp0 |= Beat_A_Code[index_A];

GPIOC->ODR = temp0;

}

else

{

GPIOC->ODR &= 0x17;

}

/* 步进电机B转动控制流量值小于等于4L */

if(motor_B_Beats != 0)

{

if(motor_B_Beats > 0)                //正转

{

index_B++;

index_B &= 0x07;

motor_B_Beats--;

}

else                                                //反转

{

index_B--;

index_B &= 0x07;

motor_B_Beats++;

}

temp2  = GPIOD->ODR;

temp2 &= 0xE2;

temp2 |= Beat_B_Code[index_B];

GPIOD->ODR = temp2;

}

else

{

GPIOD->ODR &= 0xE2;

}

TIM4_ClearITPendingBit(TIM4_IT_UPDATE);

}

五线四相步进电机C语言程序,五线四相步进电机,求一个控制程序(实物见图)...相关推荐

  1. c语言中fact函数怎么调用,C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现...

    点击查看C语言程序题: 1.编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现具体信息 答:int fac(int n) //非递归{int f=1; for(;n;) ...

  2. 数码管c语言程序如何控制,跪求,8255控制数码管,单片机c语言程序;

    跪求,8255控制数码管,单片机c语言程序: 答案:3  信息版本:手机版 解决时间 2021-04-29 04:56 已解决 2021-04-28 12:39 8255 PA口--数码管的段选,82 ...

  3. 编c语言程序 任意输入一个长方体的长,宽,高,计算体积.,C语言程序,由键盘任意输入一个长方体的长.宽.高,计算体积....

    用C语言编写程序,输入一个正整数n(1 #include"stdio.h"intmain(){\x09inti,j,n;\x09inta[12];\x09intmin,mx;\x0 ...

  4. C语言链表怎么合并同类项,求一个关于合并同类项的编程

    求一个关于合并同类项的编程 全并同类项的程序,谢谢 搜索更多相关的解决方案: 同类项 ----------------解决方案------------------------------------- ...

  5. 两相四线步进电机C语言程序,求大神帮忙看单片机控制两相四线步进电机的程序!...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #define uchar unsigned char #define uint unsigned int uchar code tim ...

  6. 步进电机c语言驱动原理,《步进电机【驱动电路+C语言驱动程序】》.doc

    <步进电机[驱动电路+C语言驱动程序]>.doc /**********************************************/ /*********兰州交通大学电子电工 ...

  7. 8个流水灯c语言程序按顺序亮,求由AT89S52单片机,8个LED,流水灯程序,要求八灯一盏接一盏闪烁,且循环不灭,,要求用c语...

    厦小伙子 t--) for(bt=0; } temp=0x80;/i8 个流水灯反向逐个闪动 { P2=~temp;<8;/ 声明延时函数 void main(void) { uint i.05 ...

  8. c语言闹钟获取系统时间,求一个51单片机定时闹钟程序。要C语言。能够调时间...

    我来发一个C语言211351单片机时钟程序,希望5261能帮到你 /* 程序功能:4102带定时闹铃时钟                                      */ /*----- ...

  9. xcode怎么执行c语言程序,使用Xcode实现第一个C语言程序——Hello world

    最近一直使用Xcode学习OC,Swift,并开发iOS应用.闲来无趣,想在Mac上写几个C程序.以前在Windows中,我们常常使用VC++,Visual Studio,等等C或C++的IDE,可是 ...

最新文章

  1. WCF中服务继承多个契约的使用
  2. Asp.net Dynamic Data之三改变编辑和操作数据的现实方式
  3. 使用Fiddler进行Web接口测试
  4. Large Kernel Matters
  5. docker多个容器一起打包_详解Docker 容器基础系统镜像打包
  6. 如何处理SAP Fiori Launchpad KPI tile点击后出现的错误消息
  7. django-索引1909
  8. Sql语句查询当天本周本月记录的where条件
  9. 4核a5中断linux,中断与时钟 - osc_a5pzxo31的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. python中的异常如何处理
  11. 置换矩阵(permutation matrix)
  12. Android MVVM开发框架
  13. 机器学习项目开发经验
  14. 5 三层交换机实现VLAN间路由
  15. PCI及PCIe基本知识
  16. F-Train Wreck_2021牛客暑期多校训练营10
  17. Spark SQL操作JSON字段小Tips
  18. Java代码 打印等腰三角形、菱形和平行四边形
  19. 后台nodejs存储图片以及前端显示
  20. HDU - 4747 Mex(线段树)

热门文章

  1. 论文翻译:2000_narrowband to wideband conversion of speech using GMM based transformation
  2. 迷茫之后:Java研发转型售前——选择大于努力!
  3. python中浅紫色和浅绿色怎么表示
  4. 生于七十年代的尴尬[转]
  5. smart-doc初体验-springboot生成自动文档
  6. Vscode黑色主题很难看到鼠标
  7. 用Excel制作不一样的百分比信息图表(2)
  8. SQL触发器实例讲解(转)
  9. 机器学习案例实战(1)使用python分析科比数据
  10. 中国航空营销峰会聚焦“数字化新零售” 开启航空营销变革之路