提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:鲍佳佳|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现已加入在线订购,点击此处查看价格详情>>
如今,许多开发人员正在使用基于Arduino的项目。Arduino很容易上手,但是大多数这些Arduino开发人员都能在此方面更进一步。他们将其他们简单地视为小爱好和附带项目。在本系列文章中,我们想探讨如何将项目带入更专业的水平,以及像CLion这样的IDE如何帮助您做到这一点。
我们需要建立些什么?我们为项目设定了一个宏伟的目标。我们将建立一个电子气压计,该气压计可以测量大气压力并将其绘制在图表上,以预测接下来几个小时的天气状况。这比经典的晴雨表更有用,因为要跟踪的压力变化比绝对值更重要。该设备应使用电池供电,一次充电即可工作数周。
我们将从构建经典项目(DIY晴雨表)开始:
听起来很有趣吗?让我们开始吧!
从原型开始
电子装置
我们首先在数位板支架上钻几个孔,然后将所有零件安装在其上。固定Arduino板的螺栓之一也固定了传感器模块。
电子纸屏幕模块利用一个单向SPI接口(CS,MOSI,SCK),两个输入控制信号(RESET,DC)和一个BUSY输出信号。该模块与8线电缆一起发货,借助2.54mm边缘引脚接头连接至Arduino。为了最大程度地减少我们需要使用的接头连接器的数量,我们将显示电源线连接到Atmega8在线串行编程(ICSP)接头连接器的电源引脚。压力传感器使用I2C接口(SCA,SCL),并与标准FM跳线连接。
下表描述了所有连接:
现在是时候编写一些Arduino原型代码了。
使压力传感器在线
在官方的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:
现在我们准备创建一个新的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相关的预处理程序转换,因此我们需要手动执行一些其他步骤:
您现在可以构建项目!让我们开始吧。
将电子设备连接到计算机,然后启动Platformio Upload运行配置。现在,固件已刷新到MCU,并且我们的设备可以再次工作。那很简单!
让我们退后一步,看看到目前为止我们已经实现了什么:
PlatformIO确实很有帮助,但是如果您想完全控制项目并自定义构建步骤,该怎么办?现在,我们将项目转换为纯CMake项目。这将涉及使用CLion IDE,CMake构建系统,用于AVR的GCC工具链和avrdude刷新实用程序。
我们将继续使用Arduino库。可以从Microchip网站下载AVR工具链,从Savannah下载avrdude实用程序。
在CLion中,以以下方式配置工具链和CMake配置文件:
该项目本身的代码可以在GitHub上找到。手动复制到项目源的Arduino库与PlatformIO代码相同。随时克隆和使用它。但是,当涉及到CMakeLists.txt文件中的这些用户相关参数时,您应该小心:
一切设置正确后,您可以在CLion中触发Build操作(而不是Run!),它将尝试刷新Arduino:
让我们看看这与我们之前使用PlatformIO的设置相比如何:
本系列将继续。很快,我们将讨论通过使用另一个开发板并尝试利用其最佳功能来进一步推进该项目。敬请期待!并在评论中让我们知道您希望我们重点介绍嵌入式开发的哪些方面,尤其是Arduino。
相信通过本文的讲解你对如何使用CLion进行Arduino开发也有了一定的了解,现在赶快下载使用吧!现双节来临之际慧都推出重磅限时优惠! 最高立减2999!低至797元!想要购买Clion正版授权的朋友欢迎。
JetBrain技术交流群现已开通,QQ搜索群号“786598704”或者扫描下方二维码即可加入
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢