现在AI编程非常火,而Trae最大的优势就是国产,还免费;
原来是用Keil编译stm32代码,就想着把STM32的程序搬到Trae下,实现在Trae中编译,运行,到AI改代码一条龙。所以就研究了一下,以下是完整步骤,最终实现了AI修改STM32代码,并能在Trae中编译和下载运行。
一、先用keil编译通过
1.1 STM32CubeMX 准备
STM32CubeMX是官方提供的一个快捷生成工程喝代码的工具。
STM32CubeMX下载地址:STM32cubemx下载
STM32CubeMX使用介绍官网:STM32cubemx介绍
1.2 STM32CubeMX 生成工程
我这里使用的mcu是STM32G070RBT6
作为示例,我们只配置晶振和串口
打开CubeMX
![图片[1] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/0a12f9c288854f408b29351fe079ccb2.png)
选择ACCESS TO MCU SELECTOR,等待更新文件
![图片[2] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/27085cf1f13141d58b3874671b5b17aa.png)
选择,然后STM32G070RBT6,然后右边的Start Project
![图片[3] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/4527f2efd8144f35a9fd86b42bda2200.png)
根据自己的情况配置晶振
![图片[4] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/53b79d0bd8de45ee8d9fce4d47b8f8b1.png)
配置串口:
![图片[5] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/1e671d2a24604a6991822ff4786fdfa5.png)
根据自己硬件配置时钟晶振
![图片[6] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/44656868e6c442a78906de9bfef7d887.png)
更新
![图片[7] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/31f7bc3b3802479396849481c67f8f9c.png)
配置项目:然后点击GENERATE CODE,生成工程代码
![图片[8] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/deef3da7b90d485db93b5a709d441fa2.png)
yes下载,需要你输入账号然后会开始更新
![图片[9] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/b78844dddd094ebd9d836c64822cc153.png)
生成成功,打开目录,进入MDK-ARM
![图片[10] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/aae4e528242946208e835a31294bf6ec.png)
打开工程,前提是你已经安装了keil,可以自行去安装,地址:keil下载官网
配置为arm comple 6:这步很重要,因为trae里用的就是6的版本
![图片[11] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/19c3e870ac174012ad5548d8e6d545d7.png)
点击编译,等待编译通过:

1.3 修改代码添加打印
这时候代码是没有打印的,我们修改下代码:
修改配置,勾选 Use MicroLIB
![图片[12] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/11ee19fb5e4447b7a42584cb480f3e97.png)
添加stdio.h
![图片[13] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/f78b5178bb7447429744de53a1820f8f.png)
增加fputc,以实现可以调用printf
int fputc(int ch, FILE *f)
{
if(HAL_UART_Transmit(&huart1, (uint8_t *)&ch,1, 0xFFFF)!= HAL_OK){
}
return ch;
}
![图片[14] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/a9696ce292374ea69e713ed5e611f387.png)
在main函数里增加打印:

1.4 keil编译烧录
因为我用的是st-link的烧录器,所以这里选择的是ST-Link Debugger,这里根据自己的配置
![图片[15] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/7bb060faf58543a0a93e57fcfad0ad4e.png)
然后点击下载固件
![图片[16] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/8dcb4bb5acbd4fd0930164426879e3d1.png)
下载成功:
![图片[17] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/02b8e8fe506447e980198beebd32bc60.png)
打开串口工具,重新上电即可看到输出:
![图片[18] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/ab456d02477440e381c9897a6b9b6155.png)
到此,原始工程准备完毕,接下来我们采用trae把这个工程导入编译下载并通过ai agent修改代码
二、再用Trae导入
2.1 Trae的环境准备
首先需要安装Trae,如果没有安装trae,可以参考这篇文章:小白喂饭级掌握Trae使用:从安装到你的app(含MCP的使用方法)_trae 安装mcp-CSDN博客
然后打开Trae,在插件市场里搜索Keil Studio Pack:
![图片[19] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/b71340b268ae4ffebce8f691d3932c10.png)
安装完成后,在插件下方多了两个东西:
cmsis — 这里可以创建工程或从keil中导入转换工程
![图片[20] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/f978226e711e4a9f8a9f5af67e651fb4.png)
在Device Manager里会出现STM32 STLink,因为我们之前已经在keil环境中正常使用了,所以这里直接识别出来了,我们先勾选上。

2.2 导入和转换工程
切换到SMSIS标签
![图片[21] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/3557bbe560f841e0bc1327ba40ddbaf9.png)
选择Convert a uVison Project to CMSIS Solution
![图片[22] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/528f8c587abf42c08c8308645c83a69f.png)
找到刚刚在keil中创建好得工程文件uxprojx。
![图片[23] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/92de0bf476fe49a2b25e37a7bf4d7a10.png)
选择Open
![图片[24] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/61c257f20868417fa1dbe67c7013aa8a.png)
信任文件夹并继续
![图片[25] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/2eabdbb96ee24145bddf2c7ddb9499f2.png)
继续选择信任:
![图片[26] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/f5e01e4064c2470f8d061fb3e0c463cb.png)
然后创建了许多的yml文件,这些都是一些配置文件
![图片[27] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/c3307afbf2bb4222be37fb92da9da37b.png)
打开CMSIS,可以看到创建了工程目录:
![图片[28] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/62dd54d2c78845dfa058d1ecb832d6b5.png)
注意到这里报红了吗?
![图片[29] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/196f71350d4b4cf8a8a0a9c29f35381c.png)
鼠标放上去显示:
![图片[30] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/9949967ece254129835df14de47f7f50.png)
我们需要update RTE,在CMSIS右上的…框里下拉,选择Refresh(reload packs,update RTE)
![图片[31] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/68338b1a18d04d128296197cbbe968f8.png)
等一会就OK了:

2.3 编译、下载、运行
点击上面的小锤头开始编译
![图片[32] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/7e3b07a5f01d40bfa85bef304019d4ef.png)
如下图,编译成功:
![图片[33] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/4f8f8c189c0e44699458b0be1277c815.png)
为了有和之前代码有区别,确认我们是否是成功运行,我们修改一下代码:
在打印里增加一点字符串,保存,然后重复上一步再次编译

给设备上电,然后点击运行:
![图片[34] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/1f8d821c89794a02a0220505f7dd4570.png)
提示如下,我们选择install
![图片[35] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/3fc95013aca0423f930fde02073aff63.png)
再次运行,会开启下载,等待下载成功,如果提示连接失败啥的,注意检查下硬件烧录器连接是否牢固。

下载完成后,重新上电,就可以在串口工具里看到效果了:

三、使用Trae的AI 修改代码
3.1 第一次和AI交互
我们在右侧的AI框里给它一个任务:帮我实现交替打印如下文字:“I am tom”和“I am Jerry”,然后点击发送:
![图片[36] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/47b0c1c87b144c45a982930e793b5d65.png)
发现出现失败,我们点击停止

3.2 添加文件夹到工作区
切换到资源管理器,发现里面是MDK-ARM的文件夹,所以,AI是没有权限操作上一级目录stm32G07_example的
![图片[37] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/14c4b40c1737424f9bd7b398986a6ee7.png)
从菜单的文件,选择将文件夹提添加到工作区
![图片[38] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/7946da2c65474b02b1395994ffcd538b.png)
选择我们工程的目录stm32G07_example:
![图片[39] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/2114fb2438704ba39e1b70d17f06e22b.png)
添加后如下:

3.3 再次和AI交互
打开main.c文件,再新建一个AI会话:
![图片[40] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/52063e701f1443fcacadd3dfb2bfbb1d.png)
输入问题,再次发送:
![图片[36] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/47b0c1c87b144c45a982930e793b5d65.png)
这次就不会报错了,帮我们生成了代码,可以检查下它写的对不对,AI还发现了我们这是一个STM32的项目,比较聪明哦,选择全部接受
![图片[42] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/1ac77563c8e64288975d06c631837de2.png)
经过检查,发现Trae在C语言还不太好用,它少了一个}符号,上面{也是显示红色的,表示有错误,手动加上去,代码如下:

3.4 编译、下载、运行
切换回CMSIS,编译,编译成功:

照前面的步骤烧录,运行,结果如下:

大功告成,以后可以使用Trae改代码,运行了。
四、收尾,适合强迫症
发现上面项目选择的地方显示无标题,那我们就改改。
![图片[43] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/abb9a2f5ed2a426d96d231bfeb5c70cd.png)
文件->将工作区另存为:
![图片[44] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/dcc7b4e188144636a4a73a517b10b585.png)
放在stm32G07_example目录下,起个工作区的名也为stm32G07_example
![图片[45] - 一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码 - 宋马](https://pic.songma.com/blogimg/20250523/cf680829c7de43a4aefb282db42dd679.png)
重新打开Trae,就显示我们起的名了,直观就知道这是哪个项目















暂无评论内容