【AI编程实践】STM32软件开发的AI环境配置指南:LED闪烁初体验
现在AI编程这么火,不拿来开发嵌软也太可惜了。笔者最近刚好有个2学分的实践课,要自己做项目,这不,机会就来了。笔者特意记录下来其过程,以供大家学习和参考。使用:VSCode+Copilot+EIDE+STM32CubeMX,单片机用最经典的stm32f103c8t6+STLink。
1.安装所需环境
下载EIDE,可能会弹出安装net6,安装即可。
下载Cortex-Debug,用于调试。
访问Arm GNU Toolchain Downloads – Arm Developer下载arm-gnu-toolchain-14.2.rel1-mingw-w64-x86_64-arm-none-eabi(按自己的操作系统来,我是win11)。
2.配置EIDE
点击左侧工具栏。
点击打开插件设置。
前面三个分别填写,keil安装目录下的ARMCC文件夹路径、ARMCLANG文件路径,以及刚刚安装的文件路径,参考图片。
下拉找到 EIDE.ARM.Option: Axf To Elf,打勾。
点击安装实用工具,会弹出窗口。
安装图片中打钩的工具,直接点击就可以安装了。如果使用JLink还需要安装JLink(v6.90),我一般习惯用stlink。
3.工程开发
我需要做的课设,题目是基于香橙派与STM32的智能视觉追踪与避障小车,将由我个人完成。stm32的功能非常简单,就是usart与香橙派通信,i2c与已经嵌入相应程序的stc8通信,然后一堆gpio控制杂七八啦的东西。其实完全没必要有这块stm32,但为了显得高级,骗点分数,还是加上了。老师已提供车模底盘和参考例程,但是纯python。我打算用此课设,练习如何使用ai编写嵌入式。
首先建立一个CubeMX工程,配置好相关引脚。
正常保存为keil文件。
点击导入项目。
选择MDK,ARM,导入你的keil文件,.uvprojx。(没想到iar也行,C51也可以。)
导入后,可以在如下目录下找到main文件。
找到烧录配置选项,点击
换成stlink。
点击编译
可以看到,现在工程已经编译成功了。
点击下载
选项,将stm32用stlink连接电脑,烧录成功。下面用ai写代码即可。
为了方便,可以把../Core加入文件夹里。
4.利用AI编写代码
打开copilot,新版vscode自带,没有的话去扩展下载,直接输入提示词即可。注意需要选择COPILOT编辑。
输入提示词,可以看到,AI已经写完了代码。注意AI写的代码的位置,需要正确保存在core\inc与core\src,这一步可能需要手动来完成。
附上AI写的代码,可以看到还是相当标准的。
#ifndef __LED_H
#define __LED_H
#include "main.h"
/* LED控制函数原型 */
void LED_Init(void);
void LED_Toggle(void);
void LED_On(void);
void LED_Off(void);
#endif /* __LED_H */
#include "led.h"
/**
* @brief 初始化LED
* @retval None
*/
void LED_Init(void)
{
/* LED初始化在GPIO_Init中已完成,此处无需额外操作 */
}
/**
* @brief 切换LED状态
* @retval None
*/
void LED_Toggle(void)
{
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
}
/**
* @brief 打开LED
* @retval None
*/
void LED_On(void)
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); // 假设低电平点亮
}
/**
* @brief 关闭LED
* @retval None
*/
void LED_Off(void)
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); // 假设高电平熄灭
}
编译,烧录即可。
5.调试
右键主工程,选择openocd。
按照自己使用的设备来配置。
新建后可以在调试按钮这里找到,选择后运行,就可以进入debug界面。
能轻松地监视变量,查看堆栈,逐步运行,打断点,个人感觉比keil好用不少。
AI写的代码一次成,没有任何问题。
作者:菜菜why