本帖最后由 aramy 于 2024-8-4 09:21 编辑
开箱:
德捷那边电机好贵啊!左挑右选最终还是放弃了。只购买了这个B-G431B-ESC1板子。板子非常精致,元器件贴的很密。板子上电机接口和电源接口都是留着焊盘,没有使用插接件,看来后期接电机只能焊线了。背面三颗金属采样电阻看上去很霸气。6颗MOS管,用来控制电流的通断。左上角有个电位器,有点没看懂,不知道是干嘛用的。调速?但是为啥是接在ST-LINK板子上的?电路图也没看出来走到了那里。
初步接触ST MCSDK:
看了一下大佬们的帖子,应该是在MCSDK中有提供对应的例程。去了ST官网将MCSDK下载了下来。不熟悉这个软件的使用,摸索着建立了一个工程。
但是建立工程后,对应的CUBEMX工程文件打开报错,对应的mdk的工程文件也是打开报错。看上去是缺少什么文件夹,还没搞懂,英文看得头痛。
先点个灯
MCSDK暂时没看懂,就先放放。用普通的对付stm32的方法,先点亮LED灯。查看电路图主芯片使用的是STM32G431CBU,就用CUBEMX先创建一个工程。
查看电路图,板子上有1个led灯资源,接PC6,配置LED灯,设置一下标签“LED”
芯片的串口2和stlink连接着的,配置一下串口2,这样就可以通过stlink接串口,查看代码输出的信息了。
板子上有接一个8M的晶振,配置一下时钟源。
配置好后,我是使用keil作为编程工具,所以这里就生成mdk的项目。
接下来,用keil打开项目,第一次打开会自动下载STM32G431CBUx的支持包,需要保持网络畅通,在这里卡了我蛮久。
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
修改main函数,添加上 标准库的支持。
/* USER CODE BEGIN 0 */
int fputc(int ch, FILE *f) {
HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xffff);
return ch;
}
/* USER CODE END 0 */
重定向fputc方法,将输出定向到串口2,这样后期就可以在代码中直接使用printf函数,输出到串口了。
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
HAL_Delay(500);
printf("hello World!\r\n");
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
点灯,延时500毫秒,翻转一次灯的状态。并且串口输出。最后设置keil添加MicroLIB库的支持。就可以编译烧写了。第一次烧写会提示stlink版本太低,按提示升级即可。