
本帖最后由 ts2000 于 2017-8-22 17:09 编辑 ![]() ![]() ![]() ![]() ![]() 培训的第一节课基本就是跟课本念的一样。基本上看过文档的都知道在说些什么。不过下午还是很有技术的培训内容。虽然大部分也听不懂。只能说自己的水平也太差了。而且过程中还突然断电了。哎,这大热天的真要命。好了,看过培训之后,来实现第一个实战的内容: Task 1: 速度控制与电机启动停止先看看要求: 1. 电机以3000RPM运行 2. 程序启动电机运行,运行速度为3000RPM,在5s后停止转动 3. 停止5s后电机重新运行,速度依然是3000RPM 4. 以上过程重复操作 其实要实现这个也不难,只要在官方的FOC软件中稍微修改一下就可以实现了。下面来介绍一个实现的过程。 ![]() ![]() 用KEIL5打开文件。 在main.c 文件 178行下面插入下面代码: MCI_ExecSpeedRamp(oMCI[0], 3000/6, 1000); // 初始化电机的转速与及启动上升时间 while(1) //重复执行启动5秒,再停止5秒的过程 { MCI_StartMotor(oMCI[0]); //启动电机 for(i=0;i<100;i++) //调用100次500us { TB_Set_DebounceDelay_500us(100); // 50ms的延时。没办法,官方的延时最大是255,我这里调用了100次实现,不用去修改官方代码 while(TB_DebounceDelay_IsElapsed() == FALSE ); //等待延时时间到 } MCI_StopMotor(oMCI[0]); //停止电机 } 其实电机的实现函数有帮助文件,在官方的foc软件里可以找到。如果是自己需要实现电机的各种功能,直接可以参考官方的文档实现。这一点ST的官方确实做得非常好。大大方便了一些对电机不太懂的朋友。 |