如何使用C库Arduino代码

How to use C Libraries for Arduino code

本文关键字:Arduino 代码 何使用      更新时间:2023-10-16

我在Visual studio中有一个代码,我想在Arduino中实现。但是有一个问题。许多在Visual Studio中可用的库在Arduino IDE中不可用。我如何在我的Arduino代码中使用它们。确切地说,我想使用的库是

#include <iostream>
#include <iomanip>
#include <queue>
#include <string>
#include <math.h>
#include <ctime> 

我知道Arduino中有<iostream>可用。我认为<math.h>也可以与<string>库一起使用。

主要问题是如何使用#include <queue>及其priority_queue()等功能和.pop()iostream的其他功能?

Arduino在幕后使用的是avr-gcc编译器,它提供了对c++语言许多特性的支持。但是,它不包括libstdc++的实现,这意味着您在其他开发环境中习惯使用的许多库和特性都不存在。这样做的一个重要原因是,在小型微控制器上实现其中一些功能是不实际的。

有几个库可以实现你想要使用的一些函数和数据结构的简化版本。您可以在这里找到这些库的列表(但不一定是完整的):

http://playground.arduino.cc/Main/LibraryList

例如,QueueList可能是<queue>的一个很好的替代。

无论你找到什么,你都可能不得不重构你的代码来使用它们。当您在实现这些库和更改时遇到问题时,我建议您前往https://arduino.stackexchange.com/获取更多arduino特定的答案。

这里有详细说明:

https://www.arduino.cc/en/Hacking/BuildProcess

包含路径包括草图的目录,目标目录(/hardware/core//)和avr include目录(/hardware/tools/avr/avr/include/),以及任何库包含头文件的目录(在/hardware/libraries/中)包含在主草图文件中的文件。

这些是avr-gcc (Arduino使用的编译器)支持的库

http://www.nongnu.org/avr-libc/user-manual/modules.html