如何使用Arduino的低级语言

时间:2014-03-08 13:31:55

标签: c# c++ ide arduino

我的问题是Arduino的IDE最近对我来说还不够。简要说明一下;

当串口上的数据可用时,我需要使用中断。但arduino IDE没有这种能力。它只是使用引脚状态变化的中断。我需要它不是由引脚驱动,而是从软件内部的串口驱动。

我一直在寻找很长一段时间,但在互联网上没有答案。

我的问题是,是否有一个与Arduino一起使用的IDE,我可以使用C ++或.NET或Java来编程arduino使用的微处理器 Atmega328P

1 个答案:

答案 0 :(得分:0)

Arduino IDE正在使用标准C ++编译器。 IDE是Win AVR工具链(see sourceforge)的前端,它使用GNU GCC,一种基于标准的C ++编译器。

是的,您可以使用其他IDE:

  • 我使用Eclipse,此处描述了设置:Arduino guide for Eclipse setup

    设置工作量很高,不适合初学者。编译库并链接到程序需要了解许多细节。但是一旦你克服了学习曲线,Eclipse将为您提供更完整的开发IDE。

    但是,你仍然会使用相同的C ++编译器。

  • 您可以使用Atmel Studio。有了这个,你也会再次使用GNU GCC编译器来实现C ++。

  • 与IDE的对立面,你可以在WinAVR中使用普通的 make 文件。

话虽如此,当前编译器中没有任何内容限制您做您想做的事情。混淆语言和图书馆是一个常见的错误。

Arduino IDE包含一个串行库,但没有任何东西会强迫您使用它。你可以在arduino \ avr \ cores \ arduino \ HardwareSerial.cpp中获取代码并制作你需要修改的MyHardwareSerial.cpp副本。

我建议您仔细阅读当前HardwareSerial的代码,因为您会惊讶地发现代码已经在执行您所询问的内容。根据UART的中断从串行端口读取数据。该代码将向您展示如何实现响应UART事件的中断服务程序。


但你的问题可能是基于一个错误的前提。当前的硬件串行库是基于硬件中断的。此外,库提供了一种回调方法,用于响应接收的数据。 HardwareSerial对象将在您的代码中调用serialEvent()。请参阅API descriptionexample program