手把手教你驱动大疆RoboMaster C615电调
通过查阅各种资料掌握了通过C615电调让大疆Snail电机转起来的方法,在此尽可能详细地记录过程备查。
STM32 Cube MX部分
由于使用的是A型板,在Cube中选择STM32F427IIHx这款MCU,双击打开新工程。
Pinout & Configuration页
在System Core -> RCC中,将High Speed Clock与Low Speed Clock设置为Crystal开头的那一项;
在Timers -> Tim1中,将Clock Source设置为Internal Clock,将Channel 1设置为PWM Generation CH1,将下方设置中的Prescaler设置为167,Counter 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 | HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); |
在while块中加入:
1 | __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 1200); |
硬件连接
由于前面选择的是Tim1,所以将电调连接在如图所示的位置:
重启设备,电机发出与报错声不同的声音表示开机成功。三秒之后开始转动。要停下只需拔掉电机电源(关闭A型板会导致电机急停,若固定不牢会乱飞)。