Arduino C与普通的ANSI C、ISO C相似,也是函数型程序设计语言。只是,ANSI C的总体结构是一个main函数,而Arduino C代码分两块,一块是setup函数,你对硬件进行初始化的代码,写在里面,譬如设置端口的工作模式等等;以及对下面主体代码的初始化,也写在这里,譬如创建变量并给变量赋初值等等。上电后,setup函数只运行一次。还有一块是loop函数,这是程序的主体部分。上电后,先运行一次setup,然后就是无限次循环运行loop,直至断电。
有时,在setup()前面还有语句和指令。预处理指令主要是#include,用来装入头文件。如果程序是面向对象编程的,有类声明语句:class 类名{},还有定义对象语句:类名 对象名;。下面就以如下的四位七段数码显示程序为例来说明Arduino C程序的主体结构。
开头是#include预处理指令,先把四位七段数码显示组件的头文件SevenSegmentTM1637.h装入源文件中。第3行是按照类SevenSegmentTM1637定义一个名叫display()的对象,该对象有两个参数,分别初始化为A1与A0。也就是指定A1口为时钟口,A0口为数据口。你的硬件也必须这样连接。
在setup()里,第6行是对串行口初始化,指定信号传输的波特率为9600bps。第7~9行是初始化四位七段数码显示组件,接通、置背光亮度、清屏。
在loop()里,就一个if(){}结构。先检测串口的接收缓冲区是否有数据?如果有,就将数据送数码显示组件显示出来。然后就进入下一循环。如果缓冲区是空的,就直接进入下一循环。
#includeSevenSegmentTM1637.hSevenSegmentTM1637display(A1,A0);voidsetup(){ Serial.begin(9600); display.begin; display.setBacklight(20); display.clear();}voidloop(){if(Serial.available()0) { display.print); }}