【问题标题】:How to convert an Arduino sketch into a C file in Code::blocks? [closed]如何在 Code::blocks 中将 Arduino 草图转换为 C 文件? [关闭]
【发布时间】:2020-03-22 04:39:26
【问题描述】:

如何在 Code::blocks 中将 Arduino 草图转换为 C 文件?

我不知道为什么这个行业(嵌入式系统)的文档如此贫乏。每个人都告诉我,在这个领域有很多文档要阅读......很好......我知道数据表,但是对于一些小的代码转换(Arduino 草图到 C in Code::blocks)我什至找不到1个例子看看它是如何工作的......

【问题讨论】:

  • Arduino 更像 C++。转换成 C 语言需要做很多工作。
  • 并且有机会使用头文件和 C 文件只是为了从 1 个 Arduino 草图中获得 2/3 文件?有了 C++,还有希望吗?找不到解决方案...也许我不知道如何深入挖掘。
  • 一根绳子有多长?这取决于代码的作用。如果主要是计算将比操纵硬件的草图更容易转换。 Arduino 库中有很多功能,这也是它成为热门选择的原因之一。标准 C 与平台无关。一种语言的 2 或 3 个文件可能是另一种语言的十几个文件。当我第一次编写一个 java 程序来广播 UDP 数据报时,我很惊讶该程序只不过是一个函数。
  • Code::Blocks 可以 C++。但它是一个 IDE,而 Arduino 是一个平台,那么你想做什么?你想在 Code::Blocks IDE 中开发 Arduino 硬件吗?
  • 请注意,Sketch 是框架中的 C++,而不是 C。此外,整个 Arduino 框架不仅仅是草图 - 它是库、硬件平台、编译工具、构建系统和设备编程。 Code::Blocks 只是一个 IDE,一旦你“转换”了这段代码,它将在什么上运行?你将如何建造它以及为了什么?您是否设置了 Code::Blocks 以使用 Arduino?这甚至可能吗?

标签: c arduino embedded embedded-resource


【解决方案1】:

您不能只将 arduino 草图转换为代码块。问题是arduino ide在我们背后做了各种各样的事情,这使得新手更容易开始编程微控制器。

最简单的方法是在代码块中启动一个 avr 项目,然后按照有关如何使用代码块对通用 avr 微控制器进行编程的教程进行操作。这可能涉及获得 ISP 程序员或弄清楚如何使用 arduino 引导加载程序通过串行进行编程。

在您完全理解了使用代码块的基本编程方法之后,您就可以开始将您的 arduino 项目转换为代码块了。这将涉及您为digital_writepinMode 编写自己的定义。

你关于糟糕文档的断言是完全错误的。 AVR 确实有据可查。您应该尝试阅读他们的文档而不是 Arduino 的文档,因为那是针对希望它工作的新手或爱好者的。它们隐藏了许多更精细的信息。

【讨论】:

  • 好的,谢谢,问题比我提出的要复杂(我需要 Arduino-Serial Monitor;Atmel Studio 和 Code::Blocks),更像是一个框架(那个人是一个天才)然后它会工作......有几个函数/头文件/C文件(现在我意识到这是一个特定的项目,它是一个框架,2个项目:1个用于C,1个用于Arduino),没关系,这个从现在开始,主题已被禁用。
  • 首先不需要arduino-serial monitor、atmel studio和codeblocks同时在一起。 C++ 可以使用 C 框架,而禁用问题不是这样的。如果您的问题格式不正确、不相关或无法回答,请删除它。
  • 不是无关紧要的:)),非常相关,对于一个新时代(也许),现在对于其他人知道您可以在 Code::Blocks 中创建自己的框架很有用可以运行来自/使用 Arduino(一些板......),您可以同时在 2 个项目中工作,1 个用于 Code::Blocks,1 个用于 Arduino(1 个运行/构建用于 Windows,1 个运行/构建用于 Arduino - 串行监视器)。是的,我之前看到它仍然让我着迷......我不能删除这个问题,几个月后我会回到这个问题,为什么不建立自己的框架......
  • 所以你的问题是:我可以创建一个在 Arduino、atmel 工作室和代码块中工作的库吗?那么答案是肯定的,这个问题超出了 SO 的范围。
  • :)),不是真的,因为那是昨天,现在我提供了一个新的观点 :D,我在问题前加上了 '*DISABLED'。范围是知道如何做到这一点,现在我有一个想法,也许明天我会自己做......抱歉给您带来不便。
【解决方案2】:

虽然这可能更像是一个评论,但我想使用一个答案,希望我的“评论”能回答你的问题。

不知道为什么这个行业(嵌入式系统)在 文档。

这不是真的。嵌入式系统的硬件和软件文档非常完善。支持大多数 Arduino 模型的 Atmel AVR MCU 的手册非常出色。

将 Arduino 草图转换为 Code::Blocks 是一个非常特殊的项目。您找不到完整的工作教程也就不足为奇了。 而是学习如何使用 Code::Blocks、Arduino 的工作原理以及如何从头开始对 AVR 进行编程。你会发现大量的教程/资源。然后你将这些知识结合到你的项目中。 (这是解决您生活中几乎所有问题的好方法。分解它)

还有一个充满活力且非常友善的社区。您需要做的就是表明您确实做了一些自己的工作,并且您会被支持压得喘不过气来。

Arduino 面向零到很少编程经验的人。他们带走了最辛苦的工作和思考。您无需阅读 400 页的手册并在位级别上操作寄存器即可使 LED 闪烁或电机转动。你只需调用几个函数就可以了。 它使用了一些简化的 C++ 方言以及幕后的许多库和便利的东西来实现这一点。

您不必担心程序员、刷固件、设置项目文件、编写 make 文件等等。

如果你想在没有 Arduino IDE 的情况下做同样的事情,我强烈建议你给自己买一本关于用 C++ 进行 AVR 编程的书,如果你对 C++ 的了解至少达到中等水平,那么我强烈建议你买一本关于 C++ 的书。从长远来看,不知何故将 Arduino 草图加入普通 IDE 似乎没有希望。 您可以充分利用时间。

【讨论】:

  • 好的,谢谢您的友好回答,结构非常好(即使不是我要搜索的内容,它也很有用)
猜你喜欢
  • 1970-01-01
  • 2013-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-24
  • 2013-12-21
  • 1970-01-01
  • 2013-12-18
相关资源
最近更新 更多