Arduino第一个程序详解——人人都能玩硬件

来源:互联网 发布:linux 安装rpm命令 编辑:程序博客网 时间:2024/05/20 12:24

一、程序结构介绍

通过上一篇文章我们已经清楚了Arduino的环境搭建、程序编写以及烧录基本过程

这里我们对上一篇文章中的小程序做个讲解

//-----------------------------------------------////这是设置程序//这个函数将在单片机通电后或reset时执行//-----------------------------------------------//void setup() {  // put your setup code here, to run once:  pinMode(13, OUTPUT);        //设定13号端口为输出模式}//-----------------------------------------------////这个函数是循环执行程序,它将在setup()之后被执行//当这个函数执行完毕后将会自动重新执行//-----------------------------------------------//void loop() {  // put your main code here, to run repeatedly:  digitalWrite(13, HIGH);     //设置13口输出高电平  delay(1000);                //延时1秒(即1000ms)  digitalWrite(13, LOW);      //设置13口输出低电平  delay(1000);                //延时1秒}

首先,可以看到这个程序有两大块一个是setup()函数,一个是loop()函数


setup函数是Arduino通电后执行的函数,它在Arduino通电或reset后执行1次


loop函数是setup函数执行后执行的内容,它在setup函数执行后会循环执行,即第一次将loop中的所有语句都执行一遍后将回到loop函数的第一个语句再次执行,直到Arduino断电或被reset


具体每个语句的意义可以参照上述代码里的注释


当然对于这个程序,你也可以试着改改HIGH和LOW,比如改成两个都是HIGH或者两个都是LOW,或者改改延时里的数字,然后重新上传程序,观察一下现象。你也可以吧loop()里的东西放到setup()里面,也可以放到setup里面后再加个循环体将者四个语句括起来。再保存并上传程序观察现象。

我只是希望告诉你,硬件编程哪怕是Arduino这种简化了开发过程的程序,那也是很灵活的

二、需要注意


如果你掌握了C语言,你可能会很奇怪,Arduino是C语言编写的,而我们都知道C语言的项目中必须有且只有一个main()函数作为整个程序的入口,那么为什么这里只有setup()和loop()两个函数呢?

其实这也正是Arduino的优势之一。当你使用ArduinoIDE编写这两个函数后,点击上传的之后,Arduino会自动添加main()函数,并在main()函数起始处调用setup,之后循环执行loop()。ArduinoIDE自动整合了寄存器和地址空间的管理。简化了单片机的开发过程,让你能将心思放在应用功能的开发上。如果你学过C51或者ARM(如STM32)那么你会发现这有多棒。

题外话:这类似树莓派,但是树莓派的机制比Arduino要复杂,功能也比Arduino强大。但是从编程感受上他们同样简单,但是不要因此而认为树莓派就比Arduino好,这个要视应用需求而定,毕竟树莓派要三四百才能买一块,而Arduino(国产)只需要二三十

0 0