最近想要写个更新航模接收机固件的小项目,移植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
到此这篇githubusercontent镜像(githubusercontent镜像加速)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/67103.html