如何编程Arduino与标准C不同?

Nat*_*han 25 c c++ arduino

我有编程嵌入式系统的背景(TI MSP430,Atmel ATxmega).如何编程Arduino不同于那些?我可以用什么知识来编写Arduino?

baa*_*der 34

虽然我不知道ATXMega,但是像新款Arduinos上使用的ATmega328这样的8位AVR芯片使用的是AVR-GCC编译器.这允许将C甚至C++编译为AVR芯片.AVR-GCC之上的一个级别是AVR Libc,这是一个C库,它使AVR的编程成为更高级别的任务(不再需要直接引用寄存器,等等).

Arduino IDE在后端使用AVR-GCC和AVR libc库.此外,Arduino IDE还提供其他库,就像一个很好的串行接口.

最后,Arduino带有一个刻录在AVR芯片上的引导加载程序.引导加载程序简单地使用串行连接(来自USB)而不是In-Sytem编程器或开发板来编程AVR成为可能.

足够的背景故事,回答你的问题:Arduino可以用C甚至C++编程.可用的库是用C语言编写的,一切都将使用AVR-GCC编译.甚至不需要Arduino IDE.

编辑

在这个主题中似乎有相当多的兴趣.我写了一篇博文,试图提供有关AVR,Arduino和AVR-GCC的更多深入细节.


Geo*_*nza 9

使用Arduino时,您可以掌握现有的C知识.

目的是让艺术家/非程序员轻松地开始使用硬件编程和修补,因此'Arduino语言'只是简化开发的包装器.

对于你来说,作为C程序员使用Arduino应该会容易得多.该文件是不是冗长可言,维基是好的和人民对论坛的热情,乐于助人.