使用宇宙第一IDE---Visual Stdio编写调试STM32的方法,智能补全,牛逼的调试能力

2019-08-14 05:44发布

去年因为某些原因学习了一下C#,主要是为了写单片机上位机用的,所以接触了一下Visual Stdio 2015这个IDE,用完感觉是真心好,宇宙第一IDE一点毛病都没有。
那时候是单片机,上位机在一起学习,一边用着KEIL,一边用着Visual Stdio,简直就是冰火两重天(当然Keil也有一些优点,毕竟是ARM旗下的IDE嘛)
首先说一下Visual Stdio:①智能补全(再加上VassistX智能补全,简直完美,打几个字母,一条语句就出来了)
                                ②代码高亮显示,关键字,宏定义等等,不同的东西,不同的颜 {MOD}
                                ③调试:太强大了,在线调试,条件断点,动态变量,还有动态变量的波形图(配上STM32的ADC姑且可以算是个示波器吧,当然跟上千的示波器没法比)
                                ④文件管理也很强大,还能自己写Makefile(当然我这种垃圾是不会的)
                                ⑤实时监控STM32的所有寄存器(在SWD或者JTAG有效的情况下)
                                ⑥很多啊,我这种小菜鸟也就知道着一些,VS的强大我只摸到冰山一角(冰山一角的一角),毕竟是宇宙第一IDE
                         缺点 ①呵,软件大,大,大,除了大,还是大,配置太低的电脑可能有些吃力,当然VS已经优化很多了,至少一般的电脑很少出现卡顿,很流畅。
                                ②Keil调试的时候有seconds这个时间,可以调试时间,但VS上没有(或许是有的,但我无能没发现也不一定)
                                ③(等等......)
                                下面放点图吧(勿喷)

演示图.jpg 智能提示.jpg
首先要准备什么东西
①Visual stdio(版本么随便你吧)
②AvssistX(这个是只能补全代码的插件,可自行百度下破解版,如果不用,也可以用Vs本身就自带的智能补全,也很强大,但这个插件很强)
③Visual GDB(这个是必须的,要编写,调试STM32,这个是必须的,同样还能在线调试Linux,通过SSH,这里就不说了,反正我也不会,这个也百度下破解版)
④VS VIM(这个插件是对于喜欢离开鼠标的狂人,是和Linux的VIM一样的文本编辑器,解放双手,鼠标是程序员思维的破坏者嘛!我暂时还没体会到,但用着很爽)

进入正题:怎么用VS编写STM32并且将程序下载到STM32中
下载进去暂时有两种方法
①通过烧写软件(需要HEX文件,VS生成的16进制文件是ihex,直接把后缀改成hex就能下载了)
②各种在线调试器(什么J-Link啊,ST-Link啊,啦啦啦啦啦,你们都懂的了)
第一:怎么用Visual GDB编写程序,直接上图

步骤一:文件-》新建-》项目
GDB配置1.jpg
步骤二:如图选....英文打着麻烦,我四级还没过呢,......(努力中,不过四级大学不毕业)
GDB配置2.jpg
步骤三:也是吧..按着图来,下载两个Devices(STM32 Devices 和 Atmel ARM Devices)(我也不知道哪个有用,我看我就下啦俩,就全上图了)
GDB配置3.jpg
步骤四:然后按照图示查找自己开发板STM32的型号,选择后NEXT就行啦
注:下面的Execute From意思是吧程序下载到哪里..(当然是选FLASH)
还有C library Type是啥,恩,不知道,我只知道,如果要用Visual GDB内部的控制台显示printf什么的就要选下拉框的第一个,(缺省,不会拼,就是下拉框地最短的那一个)
GDB配置4.jpg
步骤五:就下来就是选使用的库了,有HAL库,还有固件库,还有FreeRTOS的,自己选吧,反正我是固件库
在下面是初始LED,根据自己开发板选GPIO和Pin,下面闪烁时间默认就好了(主要是用来看看链接成功不成功)
GDB配置5.jpg

步骤六:这里是选调试器的,如果使用烧录器下载,这里....emmmmmm,我也不知道了,反正后面是用ihex文件烧录的,梗调试器就没啥关系了.....
注意!:::::!!!!J-LINK的一定要选SWD(low-level)
注意!:::::!!!!J-LINK的一定要选SWD(low-level)
注意!:::::!!!!J-LINK的一定要选SWD(low-level)
三遍!!!!!!!!!!!!!!!!!!!!!!!!!
然后finish
GDB配置6.jpg
步骤七:安装Jlink的驱动了,交WinUSB(直接点图示的那个就可以开始了)
注意:一定要将调试器连上电脑
然后一直等他结束吧
GDB配置7.jpg
GDB配置8.jpg
GDB配置9.jpg


然后就好了嘛
点本地Windows调试器,如果灯闪了那就是配置好了
(自己排版一下文件,按着自己的喜好排,爱怎么着怎么着,排好之后到处模板就好了)
接下来,我尼玛,智能补全呢,高亮显示呢,恩?都打灰机去了吗!?
调试1.jpg
不急,接着看:选你的工程(注意不是第一行的解决方案,右击选Visual GDB Project......)
调试2.jpg
然后选IntelLisense Setting把IntelLisense engine下拉选择第二个(中间那个,如图)就能高亮加智能补全了,最好是加上AVssistX,会更好
如果AVssistX出现注释会有红 {MOD}波浪线的话
菜单栏选AVssistX->Visual Assist Options->underlines,里面两个全部取消勾选就行了
调试3.jpg
最后一个就是包含头文件目录的
上图(包含进来就好了)
调试4.jpg
好了接下来就开始编写你的程序吧(用cpp文件名就好了,不用改成.c)
如果还有一些问题,就在下面留言或者百度吧,我能回答的我尽量回答,回答不了的只能怪我无能咯。
好了全手打,俺要睡觉了,困
临走来几张调试的图片
盗图.jpg
好吧...这一张图示盗的.....下面一张是自己的
效果图.jpg
结束睡觉!嘻嘻

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
35条回答
17602515236
2019-08-17 22:47
本帖最后由 17602515236 于 2017-8-21 20:26 编辑
17602515236 发表于 2017-8-21 19:55
额,别人也遇到了这种情况....我好想没这样的错误.....
我找找原因,我去下个原子哥的sys.c试试...

找到原因了,原子哥用的Keil5,不需要包含stm32f4xx_xxx.h的各种外设的头文件,Keil5已经帮你自动包含过了,但VS没有,所以,
如果你装了VAssisx的话,直接在有红 {MOD}波浪线的地方右击,在右击的框里选第一个里有个Add include,VS就自动帮你在文件的最顶端#include 那个没有定义的变量所在的头文件了

一周热门 更多>