本帖最后由 Peixu 于 2023-9-25 21:40 编辑
#申请原创#@21小跑堂
APM32F411是最近新推出的一款通用MCU,与同类型STM32F411 pintopin兼容,SDK兼容,无缝衔接,可以把PCB中的STM32直接替换掉,如图下所示。
那么就在想硬件上可以做到pintopin兼容,那么软件上开发是否也能做到兼容呢?
下面就来使用STM32 Cube全家桶做实验,使用到的开发软件有STM32CubeMX、STM32CubeIDE、STM32CubeProgrammer以及ST在VSCODE的官方扩展“STM32 VS Code Extension”。
一、使用STM32CubeMX初始化配置代码
1、选择芯片型号,创建工程
2、选择水晶/陶瓷谐振器作为外部高速时钟源
3、系统模式与配置的Debug选择SerialWire
4、修改主频为100MHz
5、配置2个LED,这里使用了PE5和PE6
6、IDE选择STM32CubeIDE,然后添加“GENERATECODE”生成代码
二、使用STM32CubeIDE编写代码
1、用STM32 CubeIDE打开由STM32 CubeMX生成的工程,写个简单的闪烁灯程序
2、点击
后编译
3、点击菜单栏->Run->Run Configurations..,配置调试器,我这里用的是ST-LINK
4、运行如下
三、使用STM32CubeProgrammer编写代码,这里使用ST-LINK进行连接,成功建立连接并可正常读取数据。
四、使用ST在VSCODE的官方扩展“STM32 VS Code Extension”
1、导入之前创建的CudeIDE工程,在此之前请安装好C和Cmake的扩展
2、如果提示“Could not find an STM32CubeIDE installation.”,在gcc-arm-none-eabi.cmake中修改“TOOLCHAIN_DIRECTORIES”变量
3、编译
4、打开JLinkGDBServer工具,选择目标设备,GDBport默认是2331的,估计是我防火墙的问题,这里我偷下懒,直接用888端口,发现能用,就不修改防火墙啦,配置如下:
5、可以发现GDBServer正在等待连接了,说明J-LINK正常运行,TCP端口888处于监听状态,正等待GDB的连接
6、修改在VSCODE的launch.json文件
"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",
"miDebuggerServerAddress": "localhost:888",
// "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",
// "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,省去了繁琐的操作。"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",
"miDebuggerServerAddress": "localhost:888",
"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",
"debugServerArgs": "-port 888 -s -device STM32F411VE -endian little -speed 4000 -if swd -vd",
// "serverStarted": "Waiting for connection on port .*\\.\\.\\.",
8、运行调试
总的来说,STM32CubeProgrammer、STM32CubeMX、STM32CubeIDE以及STM32在VSCODE的官方扩展“STM32 VS Code Extension”都可以用于APM32开发。
|
赞,来学习一下!