本帖最后由 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工具下载到核心底板上,只听到五线四相步进电机不停地小抖,但并不能线性转动,如果说电压不够,换成了手机充电器直接给电机驱动器供电也是同样的现象,调节了各相的驱动时间也无效。一天一核酸不能少,今天就分享到这儿啦,后续有时间再研究研究。
|