当前位置:首页 > 嵌入式 > 开发板
[导读]“让你们看看什么叫专业的。” 看着 Sublime Atom Brackets 此起彼伏得折腾了几年就叫喧着不要 IDE 只要 Editor ,VS 摸摸 VSC 的头如是说。

有人说,Arduino是当之无愧的宇宙第一开发板!RPI(树莓派)的拥护者可能已开始准备扔鸡蛋了。不过依笔者的经验,对于一个非电子或嵌入式软件专业人员来说,Arduino的入门显然比RPI要快!其实关于二者的优劣,口水仗已打过不少,按照伟大的Q哥的想法:喜欢谁就是谁!不纠结,动起来才是王道。

今天的主题不是口水仗,只是为了让Arduino更好用,告别简陋的Arduino IDE,使用高大上的VSCode来进行软件开发。

笔者多年前就接触过Arduino,对其设计理念是非常赞同的。只是使用Arduino IDE的时候,感觉非常不爽,总想着哪一天官方能推出一款更好的集成开发环境,那样就更完美了。可惜的是,直到今天,Arduino的IDE依旧是那么朴素,没有代码提示,没有调试功能。要知道,这些特性是一个伟大的IDE应该具备的特性啊。

VSCode是MS(微软)推出的一款编辑器,就是编辑器,不是IDE!

VSCode的全称是Visual Studio Code,源自MS大名鼎鼎的Visual Studio开发套件,不过没有Visual Studio那么臃肿,继承了Visual Studio强大的代码编辑功能,具备代码补全、代码格式化等诸多编辑优点。

这个编辑器组件来自online editor Monaco,由坐镇苏黎世的Eric Gamma率领团队打造,typescript写就。VSCode小巧而实用,一经推出就备受好评。

我们都知道编辑器一般是不能编译代码的,不过MS为VSCode提供了诸多的extension即扩展插件,使得完全可以把它当作一个IDE来使用。其实这种作法在很多有名的编辑器中都早已采用,如Edit Plus,Notepad ++等。

从这里https://code.visualstudio.com/下载最新的VSCode并安装,这个过程不赘述。

启动VSCode后的画面如下

现在的VSCode还是个编辑器,只能编辑文件,不能编译!毕竟工具链什么的都还没有配置。

VSCode支持非常丰富的插件类型,包括各种语言如c/c++、Python等,支持不同的硬件平台如Arduino、STM32、ESP32等,确是应有尽有。

先来添加Arduino支持,如下

需要安装什么插件,直接在搜索栏内输入内容,然后VSCode会列出一堆可供选择,上图中显示的是已安装好了Arduino扩展插件的情况,这个插件是MS官方推出的版本,目前版本号为0.2.6。

要在VSCode中使用Arduino的功能,还需要下载安装Arduino,毕竟各种工具链及相关驱动及示例代码都是Arduino中提供的。

从arduino.cc下载最新的Arduino,本文测试时使用的是压缩包.zip格式,直接解压到指定的文件夹即可使用,如下

双击arduino.exe文件检查程序运行是否正常。

需要注意的是Arduino的运行是需要JRE支持的,所以如果发现不能启动Arduino的话,需要检查是否安装了JRE运行环境。

默认的Arduino支持一些基本的Arduino硬件如UNO、MEGA2560等,如果需要三方支持的话,需要先安装底层的工具链等支持。

以Adafruit的Feather开发板为例,介绍如何在Arduino中添加硬件支持。

一般来说,支持Arduino开发的硬件平台,厂商都会指定相关的工具链及底层的支持包(BSP),例如为Feather添加支持,需要在Arduino的Preferences中指定如下的URL

设置好URL之后,接下来需要在Arduino的Board Manager里添加具体的硬件支持,例如该Feather使用的MCU主控为Atmega32u4,那么就添加相应的支持包

你可能会觉得奇怪,不是用VSCode来作为开发环境么?怎么现在设置都是在Arduino里操作呢?

其实这个问题很好回答。记得我们前面介绍VSCode时说过,VSCode只是一个编辑器,把它当成IDE来使用的话,当然得先配置好Arduino本身。

配置好Arduino之后,接下来就是让VSCode感知到Arduino的存在,毕竟插件还没有智能到自动感知的地步。

VSCode与VS不同的地方在于:VSCode的配置文件都是使用JSON来进行配置,VSCode在启动的时候读取这些配置,然后就可以开始工作了。

VSCode进行系统参数设置的快捷键是Ctrl+,,打开后,搜索与Arduino相关的设置,如下

如图所示,在设置界面中先输入arduino,与Arduino相关的设置都会显示,然后在右边的用户设置中修改具体的用户值,用户设置的参数会覆盖系统默认的参数。

这里最关键的一个参数就是Arduino所在的位置,直接指定Arduino所在的位置即可。

这样子设置之后,VSCode应该可以使用Arduino来进行开发工作了。[!--empirenews.page--]

新建一个简单的Arduino源文件test.ino,在里面输入如下内容

#include

void setup() {

pinMode(13, OUTPUT);

}

void loop() {

digitalWrite(13, HIGH);

delay(500);

digitalWrite(13, LOW);

delay(500);

}

玩Arduino板子的用户对这段代码应该是耳熟能详了,也不解释了。

接下来设置硬件的类型及上传代码用到的串口,这些设置可以使用命令面板(Command Palette)来设置,也可以使用快速方式,先体验下快捷方式设置,在VSCode窗口的右下角有选择开发板类型及串口的设置,如下

先选择开发板类型,如下

选择通信串口,如下

接下来是编译,链接及上传代码到开发板。

除了设置开发板类型及通信串口外,其它与Arduino相关的操作如代码编译,上传等功能,都只能通过命令面板提供的命令来进行了。

打开命令面板的快捷键是Ctrl+Shitp+P,也可以使用功能键F1来完成命令,打开后的命令面板大致如下

可以看到以Arduino打头的命令都是与Arduino操作相关的,如开发板管理,串口参数设置,编译及上传代码等功能,先看下Arduino: Upload的功能,该命令是将当前代码编译并上传到目标板。可以使用Ctrl+Alt+U快捷键来完成操作,

操作过程中会看到类似如下的输出信息

Loading configuration...

Initializing packages...

Preparing boards...

Verifying...

Archiving built core (caching) in: C:\Users\netlh\AppData\Local\Temp\arduino_cache_554445\core\core_adafruit_avr_feather32u4_59d57194f9ece49e5f06a151099c183b.a

Sketch uses 4104 bytes (14%) of program storage space. Maximum is 28672 bytes.

Global variables use 149 bytes of dynamic memory.

Uploading...

[Done] Uploaded the sketch: sketch\test.ino

代码上传完成后,会看到开发板上的LED灯开始闪啊闪。

VSCode本身有代码提示及补全功能,但是有个小小局限,只限于当前文件,略为不足。不过开源的代码补全插件还是有的,像大名鼎鼎的GTAGS,在VIM里用得非常之多。为了让VSCode更好用,当然得把GTAGS加进来。

先从http://adoxa.altervista.org/global/这里下载最新的安装包,安装或解压后,将该程序加入到用户路径PATH中,GLOBAL解压后提供的工具如下

接下来就可以使用GTAGS来建立补全信息了。

Arduino本身包含若干库,这些库都位于Arduino安装目录之下,另外Arduino将用户建立文件默认放在Documents目录的Arduino子目录下,为了让GTAGS能建立全局的数据库文件,这里稍微修改了一下默认的Arduino目录参数,将用户创建的文件全部放到Arduino的sketch子目录下,方便GTAGS搜集信息,如下

注意上图中的sketch用户代码子目录。

上图中的GPATH、GRTAGS及GTAGS文件都是使用GTAGS命令建立的索引文件,这些文件是在Arduino安装目录下执行GTAGS命令得到的结果

由大多数LINUX命令一样,GTAGS命令执行后的静默输出表明代码执行成功,接下来就可以使用代码提示及代码补全命令了。

[!--empirenews.page--]

上图是输入代码中的代码提示,可以使用TAB及ENTER来实现代码补全了。还有下面的代码提示,这酸爽啊

再来看下如何使用Arduino自带的串口监视功能,就像Arduino一样,如下

点击红色标记处的图标,就可以打开串口监视器。

最后一点,如果想要体验其它IDE中的调试功能,如代码单步、断点等,这个没办法。一是Arduino本身就没有提供这个功能,再者,要想实现在线调试,一个调试器是必不可少的,如ST有STLINK,ARM通用的JLINK,对不起,Arduino没有,也许Arduino程序本身一般比较简单,官方认为没有必要!

最后我还要偷偷摸摸告诉你你一个秘密:如果想看某个对象或类型的定义,按信ctrl键,然后在对象上点击一下,会有惊喜的

上面是在Serial对象上按住Ctrl键再点击的效果图,是不是很酷!

作为比较,最后扔一张传统的Arduino的开发界面,是不是高下立判

MS出品的东西,果然还是狠不错的。不过令人郁闷的是,MS的手机为啥总是扶不上墙?

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭