打印
[技术问答]

新定义MCU开发板测评 + 驱动步进电机

[复制链接]
474|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 yinwuqing110 于 2022-11-13 17:38 编辑

       上期零代码体验了NBK-RD8x3x开发套件的触控效果,此次在新定义提供的demo中,直接采用Keil工具编写自己代码。官方提供的“易码魔盒”其实类似STM32的“STM32CubeMX”,图形界面配置,导出即可得到设计的源码工程。
       这里采用KeilC51的V5.27.1.0版本,能**还是尽量**,否则不支持编译生成大容量的hex文件,这里直接在Demo工程中调试。

#include "SC_Init.h"        
#include "SC_it.h"
#include "..\Drivers\SCDriver_list.h"
#include "HeadFiles\SysFunVarDefine.h"
#include "motor.h"

void main(void)
{
  SC_Init();
  motor_init();
  while(1)
  {
    P01=0;
    motor_left_4(100000);
    P01=1;
    motor_left_4(100000);
   }
}
#include "motor.h"
#include "rd8_gpio.h"
#include "HeadFiles\SysFunVarDefine.h"

#define mtime 1

void motor_off(void)
{
    GPIO_WriteLow(GPIO3, 0);
    GPIO_WriteLow(GPIO3, 1);
    GPIO_WriteLow(GPIO3, 2);
    GPIO_WriteLow(GPIO3, 3);
}

int motor_init(void)
{
  GPIO_Init(GPIO3,0,GPIO_MODE_OUT_PP );
  GPIO_Init(GPIO3,1,GPIO_MODE_OUT_PP );
  GPIO_Init(GPIO3,2,GPIO_MODE_OUT_PP );
  GPIO_Init(GPIO3,3,GPIO_MODE_OUT_PP );
  motor_off();
  return 0;
}

void motor_left_4(uint8_t speed)
{
    GPIO_WriteLow(3, 0);
    Delay(mtime);
    GPIO_WriteLow(3, 1);
    Delay(mtime);
    GPIO_WriteHigh(3, 2);
    Delay(mtime);
    GPIO_WriteHigh(3, 3);
    Delay(speed);
    GPIO_WriteLow(3, 1);
    Delay(mtime);
    GPIO_WriteLow(3, 2);
    Delay(mtime);
    GPIO_WriteHigh(3, 3);
    Delay(mtime);
    GPIO_WriteHigh(3, 0);
    Delay(speed);
    GPIO_WriteLow(3, 2);
    Delay(mtime);
    GPIO_WriteLow(3, 3);
    Delay(mtime);
    GPIO_WriteHigh(3, 0);
    Delay(mtime);
    GPIO_WriteHigh(3, 1);
    Delay(speed);
    GPIO_WriteLow(3, 3);
    Delay(mtime);
    GPIO_WriteLow(3, 0);
    Delay(mtime);
    GPIO_WriteHigh(3, 1);
    Delay(mtime);
    GPIO_WriteHigh(3, 2);
    Delay(speed);
    motor_off();
}

void motor_right_4(uint8_t speed)
{
    GPIO_WriteLow(3, 2);
    GPIO_WriteLow(3, 3);
    GPIO_WriteHigh(3, 0);
    GPIO_WriteHigh(3, 1);
    Delay(speed);
    GPIO_WriteLow(3, 1);
    GPIO_WriteLow(3, 2);
    GPIO_WriteHigh(3, 3);
    GPIO_WriteHigh(3, 0);
    Delay(speed);
    GPIO_WriteLow(3, 0);
    GPIO_WriteLow(3, 1);
    GPIO_WriteHigh(3, 2);
    GPIO_WriteHigh(3, 3);
    Delay(speed);
    GPIO_WriteLow(3, 3);
    GPIO_WriteLow(3, 0);
    GPIO_WriteHigh(3, 1);
    GPIO_WriteHigh(3, 2);
    Delay(speed);
    motor_off();
}
       编译完成后,使用ISP工具下载到核心底板上,只听到五线四相步进电机不停地小抖,但并不能线性转动,如果说电压不够,换成了手机充电器直接给电机驱动器供电也是同样的现象,调节了各相的驱动时间也无效。一天一核酸不能少,今天就分享到这儿啦,后续有时间再研究研究。

使用特权

评论回复
沙发
sheflynn| | 2022-12-4 20:43 | 只看该作者
跟51单片机一样的吧。              

使用特权

评论回复
板凳
nomomy| | 2022-12-6 12:58 | 只看该作者
怎么驱动电机转的快一点呢。              

使用特权

评论回复
地板
wilhelmina2| | 2022-12-6 14:29 | 只看该作者
这个单片机需要上拉电阻的吗?              

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

94

主题

1005

帖子

6

粉丝