[APM32F4] 【APM32F411测评】使用STM32 Cube全家桶开发APM32F4

[复制链接]
3473|5
 楼主| Peixu 发表于 2023-9-25 21:28 | 显示全部楼层 |阅读模式
本帖最后由 Peixu 于 2023-9-25 21:40 编辑

#申请原创#@21小跑堂
APM32F411是最近新推出的一款通用MCU,与同类型STM32F411 pintopin兼容,SDK兼容,无缝衔接,可以把PCB中的STM32直接替换掉,如图下所示。
70a2b9fcfb415f2aca29a74575c84407
那么就在想硬件上可以做到pintopin兼容,那么软件上开发是否也能做到兼容呢?
下面就来使用STM32 Cube全家桶做实验,使用到的开发软件有STM32CubeMX、STM32CubeIDE、STM32CubeProgrammer以及ST在VSCODE的官方扩展“STM32 VS Code Extension”。
一、使用STM32CubeMX初始化配置代码
1、选择芯片型号,创建工程
67be7e21a8ee21bf78308ab93d5537c4
2、选择水晶/陶瓷谐振器作为外部高速时钟源
7475d36b3d06b455f654248422990e04
3、系统模式与配置的Debug选择SerialWire
34911dcfecc607305e594d22694d5187
4、修改主频为100MHz
acc107d861485f4733ac82e2b7e72737
5、配置2个LED,这里使用了PE5和PE6
2eb2435af068e2f8e1de206cabcb0067
6、IDE选择STM32CubeIDE,然后添加“GENERATECODE”生成代码
36d5695e873905507c5a799cb522bf17
二、使用STM32CubeIDE编写代码
1、用STM32 CubeIDE打开由STM32 CubeMX生成的工程,写个简单的闪烁灯程序
ce52f7d1fc8332e3cafe6cadb925b0e4
2、点击 77b5d3b3d6567417452d8cc26b558c5e 后编译
3、点击菜单栏->Run->Run Configurations..,配置调试器,我这里用的是ST-LINK 374e92741acc2a6cabf3cc2c86079842
4、运行如下
d9adbdfe7b24e06646f7eea3af9b07c7
三、使用STM32CubeProgrammer编写代码,这里使用ST-LINK进行连接,成功建立连接并可正常读取数据。
ab8a1add559230e36143853306d9d24a
四、使用ST在VSCODE的官方扩展“STM32 VS Code Extension”
1、导入之前创建的CudeIDE工程,在此之前请安装好C和Cmake的扩展
cad9bcab4443747866d865f379c3c6f2
2、如果提示“Could not find an STM32CubeIDE installation.”,在gcc-arm-none-eabi.cmake中修改“TOOLCHAIN_DIRECTORIES”变量
8e9dcb1b086af2d1d812525ea52ae765
3、编译
f2978d8b838bbca5c36bfe7625a792f6
4、打开JLinkGDBServer工具,选择目标设备,GDBport默认是2331的,估计是我防火墙的问题,这里我偷下懒,直接用888端口,发现能用,就不修改防火墙啦,配置如下:
4a712825b0b098e2c14dbe590e571362
5、可以发现GDBServer正在等待连接了,说明J-LINK正常运行,TCP端口888处于监听状态,正等待GDB的连接
a19618cf077f22756ad0b07da9c80bb6
6、修改在VSCODE的launch.json文件
  1. "miDebuggerPath": "D:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/arm-none-eabi-gdb.exe",
  2. "miDebuggerServerAddress": "localhost:888",
  3. // "debugServerPath": "D:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.win32_2.1.0.202305091550/tools/bin/ST-LINK_gdbserver.exe",
  4. // "debugServerArgs": "--stm32cubeprogrammer-path ${command:vscode-embedded.st.cubeprogrammer} --swd --port-number 3333",

miDebuggerPath是调试程序(如 gdb)的路径,miDebuggerServerAddress是要连接到调试程序服务器地址,因为GDBServer已经被打开了,所以注释掉debugServerPath和debugServerArgs
7、后来发现每次调试都要打开SEGGER J-LINK GDB Server,很不方便,经过一番折腾后,再次修改launch.json,J-Link GDB Server CL是 GDB Server 的仅命令行版本,这样VSCODE自动帮我们打开gdbserver,省去了繁琐的操作。
  1. "miDebuggerPath": "D:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/arm-none-eabi-gdb.exe",
  2. "miDebuggerServerAddress": "localhost:888",
  3. "debugServerPath": "D:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.jlink.win32_2.2.0.202305091550/tools/bin/JLinkGDBServerCL.exe",
  4. "debugServerArgs": "-port 888 -s -device STM32F411VE -endian little -speed 4000 -if swd -vd",
  5. // "serverStarted": "Waiting for connection on port .*\\.\\.\\.",
8、运行调试
d2485eb8dd5ac128258bd787d4a24a34
总的来说,STM32CubeProgrammer、STM32CubeMX、STM32CubeIDE以及STM32在VSCODE的官方扩展“STM32 VS Code Extension”都可以用于APM32开发。



评论

赞,来学习一下!  发表于 2023-10-12 11:47
chenjun89 发表于 2023-10-17 07:53 来自手机 | 显示全部楼层
能够完全兼容吗?

评论

这就要看极海的地址与对应STM32的地址一样不  发表于 2023-10-31 08:47
zhjb1 发表于 2024-4-26 15:43 | 显示全部楼层
学习了,谢谢
stb988 发表于 2024-5-8 10:06 | 显示全部楼层
我试了,Keil连接不上啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

58

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部