彩票走势图

使用CLion进行Arduino开发:从业余到专业(一)

翻译|使用教程|编辑:鲍佳佳|2020-09-03 10:19:37.027|阅读 2701 次

概述:如今,许多开发人员正在使用基于Arduino的项目。Arduino很容易上手,但是大多数这些Arduino开发人员都能在此方面更进一步。他们将其他们简单地视为小爱好和附带项目。在本系列文章中,我们想探讨如何将项目带入更专业的水平,以及像CLion这样的IDE如何帮助您做到这一点。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

CLion是一款专为开发C及C++所设计的跨平台IDE。它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的IDE帮助开发人员在Linux、OS X和Windows上来开发C/C++,同时它还使用智能编辑器来提高代码质量、自动代码重构并且深度整合CMake编译系统,从而提高开发人员的工作效率。感兴趣的朋友欢迎下载试用!CLion现已加入在线订购,点击此处查看价格详情>>

点击下载CLion最新试用版

如今,许多开发人员正在使用基于Arduino的项目。Arduino很容易上手,但是大多数这些Arduino开发人员都能在此方面更进一步。他们将其他们简单地视为小爱好和附带项目。在本系列文章中,我们想探讨如何将项目带入更专业的水平,以及像CLion这样的IDE如何帮助您做到这一点。

我们需要建立些什么?

我们为项目设定了一个宏伟的目标。我们将建立一个电子气压计,该气压计可以测量大气压力并将其绘制在图表上,以预测接下来几个小时的天气状况。这比经典的晴雨表更有用,因为要跟踪的压力变化比绝对值更重要。该设备应使用电池供电,一次充电即可工作数周。

我们将从构建经典项目(DIY晴雨表)开始:

  • Bosch BMP085气压传感器。我们将使用GY-65模块,尽管它可能会被BMP180GY-68)取代。
  • Arduino Uno开发板。我们使用DFRduino UNO R3,因为它的连接器色彩丰富colorful
  • Waveshare 4.2英寸电子纸屏幕。
  • 电线,USB电缆,几个塑料PCB支架,M3螺栓和螺母。
  • 宜家塑料平板电脑支架,用于将所有原型零件固定在一起。

听起来很有趣吗?让我们开始吧!

从原型开始

电子装置

我们首先在数位板支架上钻几个孔,然后将所有零件安装在其上。固定Arduino板的螺栓之一也固定了传感器模块。

板卡设置

电子纸屏幕模块利用一个单向SPI接口(CS,MOSI,SCK),两个输入控制信号(RESET,DC)和一个BUSY输出信号。该模块与8线电缆一起发货,借助2.54mm边缘引脚接头连接至Arduino。为了最大程度地减少我们需要使用的接头连接器的数量,我们将显示电源线连接到Atmega8在线串行编程(ICSP)接头连接器的电源引脚。压力传感器使用I2C接口(SCA,SCL),并与标准FM跳线连接。

下表描述了所有连接:

连接数

现在是时候编写一些Arduino原型代码了。

使压力传感器在线

在官方的Arduino指南详细解释了Arduino的草图发展。因此,我们将简要地进行设置:

  1. 创建一个新项目并为其命名。
  2. 然后添加 Adafruit_BMP085 library with the Sketch -> Include Library… -> Manage Libraries… 项目菜单。
  3. 添加一些实际的代码。
  4. 之后,您可以连接Arduino,上传草图,并使用Arduino串行监视器验证其是否有效。
使屏幕在线

对于该项目,我使用了屏幕供应商WaveShare在GitHub上共享的代码,并添加了更多代码来启动和运行屏幕。您可以在此处签出最终的项目代码。现在开始运行!

在线屏幕

Arduino草图

“ ;Sketch ”是Arduino用于程序的名称。这是上载到Arduino板上并在Arduino板上运行的代码单元。Arduino草图使用的语言是C和C ++。更准确地说,可以编写一组C / C ++函数,然后对其进行一些预处理,例如在添加一个或多个Arduino专用#include子句时。最后将结果直接传递给C / C ++编译器(avr-g ++)。您可以在官方文档中阅读有关Arduino构建过程的信息。

由于最终仅使用C ++,因此可以使用任何通用的C ++ IDE编写代码。使用Arduino以外的IDE确实需要一些手动步骤,您可以从官方的构建过程描述中提取这些步骤。但是,让我们看看您是否可以获得任何回报!

CLion如何提供帮助

如果您对嵌入式开发感兴趣,并且正在寻找一个可以尝试的项目,那么Arduino是一个不错的起点。它拥有一个庞大而热情的社区,丰富的基础架构以及数十种各种代码示例和库。非常适合希望在嵌入式世界中迈出第一步的人,或者想要实现一些简单想法的人。随着项目的发展,它开始需要更多的工作,更复杂的代码,更高的嵌入式处理器性能,更多的MCU内存以及更多的外围设备。在这一点上,IDE等开发工具对于保持我们的代码质量并帮助我们更高效地进行开发非常有用。让我们看一下CLion如何提供帮助。

范围更广的智能代码编辑器

如果您不熟悉它,CLion是适用于C和C ++的通用跨平台IDE。它理解C和C ++中的代码,并使用此知识来提供编辑器内的操作。导航动作可以搜索上下文使用情况,或者一次按键即可跳转到类,文件或符号,一个智能的快速文档弹出窗口以及参数名称提示可以帮助开发人员更好地阅读和理解代码。自动补全,实时模板,重构(例如提取函数,参数或变量,内联,当然还有重命名和更改签名)都可以帮助您更快地编写代码。当涉及到代码质量时,内置的静态分析工具和动态分析是必不可少的帮助工具。嵌入式开发世界中的错误代价可能比其他地方要高得多,因为当软件在硬件上运行时,错误通常会在运行时显示出来。在您键入代码时立即捕获错误,然后,显然可以减少您可能遇到的麻烦。

CLion提供的另一个绝佳机会是调试代码的能力。它使您可以逐行跟踪代码执行,检查变量的值,观察外设寄存器的内容等。所有这些都可以在仿真器中完成,也可以在真实的MCU上完成,这取决于是否存在合适的仿真器以及MCU的调试功能是什么。

在接下来的专用教程中我们将学习如何在Windows上配置CLion,包括用于编译和调试的必要工具链。在我们的Arduino案例中,您将需要安装MinGW。

与世界分享您的项目

随着爱好项目的发展,它通常最终会在GitHub,GitLab,Bitbucket或其他地方共享,这使更多的参与者可以加入。在VCS上发布,处理请求请求,将工作分散到多个分支中–所有这些都是必不可少的任务可以直接在CLion中完成。至于编辑代码,未提交的更改在编辑器中突出显示,并且作者的注释可用。所有这些功能都减少了切换上下文的需要,从而节省了您制定新想法的时间。

在发布到VCS时,不要忘记添加一个Readme.md文件,该文件可以让其他人知道项目的内容,并提供有关如何使用该项目的详细信息(需要进行哪些设置,使用哪种工具链,等等。)。CLion附带了Markdown支持,因此您可以轻松获得Readme.md文件的预览:

降价促销

迁移到PlatformIO

PlatformIO.org是一个用于嵌入式开发的丰富生态系统,它支持各种目标硬件类型,编译器和框架,包括Arduino项目。

让我们看看如何在CLion中开始使用PlatformIO:

  1. 首先,您需要安装PlatformIO Core。
  2. 还有CLion的PlatformIO插件(“Settings/Preferences | Plugins”)。

现在我们准备创建一个新的PlatformIO项目,在本例中,我们将选择Arduino Uno。单击文件->新建项目,然后选择Arduino Uno作为目标以及项目位置。由于列表上有很多板子,因此您可以仅输入“ Uno”,然后使用箭头键浏览板子列表。为避免以后出现故障,我们建议您不要在该位置使用国际字符,特殊符号或空格。

搜索板

下一步是启用我们的传感器库。在CLion编辑器中打开platformio.ini,并将“ lib_deps = Adafruit BMP085 Library” 行添加到该[env:uno]部分,然后调用“工具” |“工具”。PlatformIO | 重新初始化。

现在是时候向我们的项目中添加一些代码了。将所有头文件从Arduino草图文件夹复制到项目的include文件夹,并将所有源文件和.ino文件从Arduino草图文件夹复制到项目的src文件夹。您可以删除空的main.c文件-我们不需要。

由于我们不依赖Arduino IDE进行与Arduino相关的预处理程序转换,因此我们需要手动执行一些其他步骤:

  1. 将草图转换为C ++。为此,您只需将主.ino文件重命名(Shift + F6)为.cpp即可。在这种情况下,CLion会相应地自动更新CMake文件。然后,您只需要重新加载CMake项目即可:CMake | 重新加载CMake项目
  2. 打开arduino-barograph.cpp并将其添加#include <Arduino.h>到文件的开头。
    包括完成

您现在可以构建项目!让我们开始吧。

将电子设备连接到计算机,然后启动Platformio Upload运行配置。现在,固件已刷新到MCU,并且我们的设备可以再次工作。那很简单!

让我们退后一步,看看到目前为止我们已经实现了什么:

  1. 我们开始使用一些其他软件(PlatformIO,CLion)来获得更强大的嵌入式环境,并从C ++ IDE的生产力功能中受益。
  2. 由于采用了PlatformIO方法,因此可以轻松地将应用程序轻松迁移到许多其他硬件平台。
  3. 通过使用CLion中的VCS集成和Markdown支持,我们使项目生命周期的维护更加方便。
控制项目

PlatformIO确实很有帮助,但是如果您想完全控制项目并自定义构建步骤,该怎么办?现在,我们将项目转换为纯CMake项目。这将涉及使用CLion IDE,CMake构建系统,用于AVR的GCC工具链和avrdude刷新实用程序。

我们将继续使用Arduino库。可以从Microchip网站下载AVR工具链,从Savannah下载avrdude实用程序。

在CLion中,以以下方式配置工具链和CMake配置文件:

编译器
工具链

该项目本身的代码可以在GitHub上找到。手动复制到项目源的Arduino库与PlatformIO代码相同。随时克隆和使用它。但是,当涉及到CMakeLists.txt文件中的这些用户相关参数时,您应该小心:

  • AVRDUDE位置
  • Arduino COM端口名称
  • 特殊构建目标FLASH

一切设置正确后,您可以在CLion中触发Build操作(而不是Run!),它将尝试刷新Arduino:

在Arduino上运行

让我们看看这与我们之前使用PlatformIO的设置相比如何:

  1. 我们需要注意更多设置,例如COM端口名称,avrdude位置等。
  2. 现在,我们可以完全控制构建过程,并可以根据需要进行调整。
  3. 该应用程序可以迁移到其他硬件平台(即使PlatformIO不支持的平台)。
未完待续…

本系列将继续。很快,我们将讨论通过使用另一个开发板并尝试利用其最佳功能来进一步推进该项目。敬请期待!并在评论中让我们知道您希望我们重点介绍嵌入式开发的哪些方面,尤其是Arduino。

相信通过本文的讲解你对如何使用CLion进行Arduino开发也有了一定的了解,现在赶快下载使用吧!现双节来临之际慧都推出重磅限时优惠! 最高立减2999!低至797元!想要购买Clion正版授权的朋友欢迎


JetBrain技术交流群现已开通,QQ搜索群号“786598704或者扫描下方二维码即可加入



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP