手把手教你驱动大疆RoboMaster C615电调

通过查阅各种资料掌握了通过C615电调让大疆Snail电机转起来的方法,在此尽可能详细地记录过程备查。

STM32 Cube MX部分

由于使用的是A型板,在Cube中选择STM32F427IIHx这款MCU,双击打开新工程。

Pinout & Configuration页

System Core -> RCC中,将High Speed ClockLow Speed Clock设置为Crystal开头的那一项;

Timers -> Tim1中,将Clock Source设置为Internal Clock,将Channel 1设置为PWM Generation CH1,将下方设置中的Prescaler设置为167Counter Period设置为1999,数值的原理请参阅文末的参考链接。

Clock Configuration页

HSE左侧的Input Frequency设为12,右侧的单选按钮组选中HSE,再右侧的/M下拉框选择/6,再右侧的System Clock Mux单选按钮组选中PLLCLK,再右侧的HCLK设为168并按回车,Cube会自动调整其他值。

代码部分

生成工程后,在main.c的User Code Begin 2后面加上:

1
2
3
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 1000);
HAL_Delay(3000);

在while块中加入:

1
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 1200);

硬件连接

由于前面选择的是Tim1,所以将电调连接在如图所示的位置:

重启设备,电机发出与报错声不同的声音表示开机成功。三秒之后开始转动。要停下只需拔掉电机电源(关闭A型板会导致电机急停,若固定不牢会乱飞)。

参考链接

如何在stm32cubeide上使用pwm驱动snail电机_Suk1111的博客-CSDN博客

【RoboMaster电控教程】课程3 PWM与舵机 - 哔哩哔哩专栏 (bilibili.com)