最近想要写个更新航模接收机固件的小项目,移植opentx项目的部分代码到我的最小系统板上。不经意间发现vscode上也可以开发stm32了,于是,一个填坑行动开始了!!!
先写怎么才能编译调试吧!
环境:
windows10x64,8G内存,i5 4200
stlink v2
1.你要有个vscode,不用我说了。
安装完毕,点击重新加载。之后会提示正在安装PlatformIO 核心。

再次重新加载

3.安装完毕后,在vscode的左下角会有一个家的图标,可以从这里新件工程。第一次启动也会自动打开PIO Home页面。

4.新建工程。因为它是以开发板为选择,不是芯片,只能选择BluePill F103C8,这个关系不大,只是运行内存和Flash大小不同。记得选一个空目录。

5.打开工程,新建的工程会在PIO Home的下发列出。点击打开,如果打不开,关闭编辑器重新打开一次,或者直接用vscode打开那个目录。

6开打工程后,目录树中无源码,需要自己添加,按一下Ctrl+Alt+B,platformio自动下载编译组件。然后提示无文件可以编译。



我们添加一个main.c,然后再编译。


然后插上stlink,接上单片机,按CTRL+ALT+U,烧到单片机上(首次上传会安装stlink)。

—————————————————————–分割线————————————————————————–
你以为就完了吗,那我写这个文章干嘛!
看起来编译完成,上传也通过了,然而,你的单片机并没有让c13口的灯闪亮,串口也并没有发送字母c!由于以前都是使用keil开发,对启动项目和内存定义并不清楚,加之platformio使用了arm-none-eabi-gcc编译,隐藏了太多的细节。经过一个礼拜的刻苦钻研,最终找到了解决方法。方法如下:
在你的电脑上找到这个文件,C:Users<你的用户名>.platformiopackagesframework-stm32cubeplatformioldscriptsSTM32F103C8_DEFAULT.ld,打开。

把红框里的内容改为 _estack = 0x; 加一个0,就这一个0,天大的坑的存在,对于熟悉使用gcc编译的人,可能并不很难,但对于我等新手,这个问题实在太难找!!!之后,把这个文件另存为STM32F103C8_flash.ld,不另存也可以,但我喜欢完美,Platformio的源码是先寻找_FLASH.ld再寻找DEFAULT.ld的。
好了,再编译,上传(CTRL+ALT+B,CTRL+ALT+U)。享受使用vscode编写stm32的乐趣吧!
main.c

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/194025.html