打印
[UNO]

【UNO R3 SMD试用】3.代码结构分析。

[复制链接]
1517|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yang_alex|  楼主 | 2018-3-6 23:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yang_alex 于 2018-3-6 23:52 编辑

       Arduino使用起来要比其他微处理器更容易,尤其是针对没有电子技术基础的人,比如小学生、跨领域创新者,Arduino的编程语言更为简单和人性化,Arduino编程语言基于C语言,但对初学者来说实用性又远高于C语言,主要由于它将一些常用语句函数化,例如:延时函数delay(1000)即为一秒。还有一些通过库函数的调用实现。这样,初学者只要会调用这些函数就好了。而更多的细节被封装在库里面。

       最初的Arduino基于AVR平台,对AVR库进行了二次编译封装,好处是把端口都打包好了,寄存器、地址指针之类的基本不用管。大大降低了软件开发难度,适宜非专业爱好者使用。缺点在于,因为是二次编译封装,代码不如直接使用 AVR 代码编写精练,代码执行效率与代码体积都弱于AVR直接编译。

       目前随着技术的发展,Arduino已经不仅仅局限于AVR平台,还出现了许多其他平台像ESP8266、STM32等。但是由于有统一的接口定义,不同平台之间的应用程序迁移非常方便!

       通过学习,发现Arduino程序基本架构非常简单:是先声明变量及接口名称,然后以 setup()开头,loop()作为主体的一个程序极架。

       我们通过一个简单的闪灯的例子来进行学习。

声明变量及接口名称
// constants won't change. Used here to set a pin number:
const int ledPin =  LED_BUILTIN;// the number of the LED pin

// constants won't change:
const long interval = 500;           // interval at which to blink (milliseconds)

setup()是用来初始化变量,管脚模式,调用库函数等等,此函数只运行一次。
本程序在 setup()中用数字 IO 口输入输出模式定义函数 pinMode(pin,mode),将ledPin引脚设置为输出模式。
void setup() {
  // set the digital pin as output:
  pinMode(ledPin, OUTPUT);
}

loop()函数是一个循环函数,函数内的语句周而复始的循环执行。

本程序在 loop()中先用 数字 IO 口输出电平定义函数 digitalWrite(pin, value),将ledPin定义为高电平,点亮 led灯;接着调用延时函数 delay(ms)(单位 ms)延时 500ms,让发光二极管亮0.5s;再用数字IO 口输出电平定义函数 digitalWrite(pin, value),将ledPin定义为低电平,熄灭 led 灯;接着再调用延时函数 delay(ms)(单位 ms)延时 500ms,让发光二极管熄灭 0.5s。因为 loop()函数是一个循环函数,所以这个过程会不断的循环。

// the loop function runs over and over again forever
void loop() {
  digitalWrite(ledPin, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(interval);                       // wait for a second
  digitalWrite(ledPin, LOW);    // turn the LED off by making the voltage LOW
  delay(interval);                       // wait for a second
}

当然,这是比较简单的程序。更复杂详细的语法、库函数定义、用法还是需要找本教材来仔细学习的。



相关帖子

沙发
yang_alex|  楼主 | 2018-3-7 10:40 | 只看该作者
tyyhmtyyhm 发表于 2018-3-7 00:15
非常不错的资料@!!顺便问一下,发帖说是没有url权限是什么意思?

可能是因为你等级低吧。多发帖,多回复,慢慢等级上去了就可以发链接了。

使用特权

评论回复
板凳
我来卖个萌| | 2018-3-8 20:16 | 只看该作者
代码 厉害

使用特权

评论回复
地板
dirtwillfly| | 2018-3-9 18:46 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

2216

帖子

8

粉丝