如何使用Arduino使用低级语言



我的问题是Arduino的IDE最近对我来说还不够。简要解释;

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

我已经搜索了很长时间,但我在互联网上没有答案。

我的问题是,我可以使用c 或.net或java来编程Arduino使用的微处理器 atmega328p

arduino IDE使用标准C 编译器。 IDE是Win AVR工具链(请参阅SourceForge)的前端基于标准的C 编译器。

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

  • 我使用Eclipse,此处描述了设置:Eclipse设置的Arduino指南

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

    但是,您仍将使用相同的C 编译器。

  • 您可以使用Atmel Studio。因此,您还将再次使用C 的GNU GCC编译器。

  • 和IDE的对立面,您可以使用Winavr。

话虽如此,目前的编译器中没有什么可以限制您做想要的事情。混淆语言和库是一个普遍的错误。

Arduino IDE包括一个串行库,但是没有什么可以迫使您使用它。您可以在arduino avr cores arduino ardwareserial.cpp中获取代码,然后根据需要进行修改。

我建议您阅读当前硬件的代码,因为您会惊讶地发现该代码已经在做您的要求。根据UART中断,正在从串行端口读取数据。该代码将向您展示如何实现从UART响应事件的中断服务例程。


但是您的问题可能是基于错误的前提。当前的硬件串行库是基于硬件中断的。此外,该库还提供了一种回答接收到的数据的回调方法。硬件对象将在您的代码中调用Serialevent()。请参阅API描述和示例程序

最新更新