目录
前言
一、环境的搭建
二、新建工程
三、项目基本函数介绍
· 1. 入口参数函数
· 2. GPIO函数
四、代码编写
五、编译、烧录、运行
六、代码进阶
结束语
前言
LED灯的点亮是每一位单片机开发新手接触的第一个项目、无论你是学习51单片机还是STM32等,都是以点亮LED灯作为其开发的第一个项目。可以说点亮LED灯就是每一位新人接触每一门编程语言的首个“Hello Word!”程序。既然要开使本系列教程,那就从点灯开始。
一、环境的搭建
关于环境的搭建,在自之前我已经出了一篇教程,在这里就不再过多介绍了。不清楚的同学可以查看我之前发布的博文。
二、新建工程
首先打开Arduino IDE,点击 文件——> 点击新建,就会生成一个新的工程模板了。 (还可以点任务栏中“折了一角的书页”快速新建)。
然后给项目重命名,然后再保存。
这样一个新的工程就建好了。
三、项目基本函数介绍
很多刚接触Arduino 的同学可能不太清楚Arduino的编程方法和代码运行的流程,这里我就简单介绍以下。Arduino为了降低编程的难度把很多常用的函数都做了封装,很多常用的一些传感器和外设也有相关的类库,而且除了官方的库,也有很多第三方的库可用(这里就更STM32的库函数一样,不经有官方的库函数、还有其他人写的底层文件),开发者只需要根据自己的实际需要添加库调用API即可,这对于项目初期验证方案来说很方便。
1. 入口参数函数
无论什么程序,都会有一个程序的入口,如传统的C语言程序,其入口就是main函数;而在Arduino 项目中却没有发现这个函数,但项目的编写语言确实是用C语言编写的,那它的程序是在那里开始运行的呢?
实际上 Arduino 的入口函数也是main函数,但其被封装到 Arduino 的核心库中了,在项目中看不到而已,看见的确实这两个函数。
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
这里我就来解释以下这两个函数说明一下它的功能及用途:
(1)setup()函数
功能 | 在代码在控制器运行时,就会开始执行这个函数,但这个函数部分只会执行一次 |
作用 | 我们可以在这个函数中完成Arduino初始化设置,如配置I/O的状态等操作 |
(2)loop()函数
功能 | 是一个死循环函数,相当于写单片机函数时的while(1){}。 |
作用 | 我们通常会在此函数中完成程序的主要功能。 |
2. 引脚配置相关函数
(1)pinMode()函数
在使用引脚输入输出之前,先配置此函数,告诉ESP8266那个引脚做什么用,模式是什么。
PinMode(pin,mode)
参数 | 说明 |
pin | 指定引脚编号的配置 |
mode | 指定模式的配置。通常有三种模式可以配置:INPUT:输入模式;OUTPUT:输出模式;INPUT_PULLUP:输入上拉模式。 |
(2)digitalWrite()函数
让某个引脚输出高点品或者时低电平。
digitalWrite(pin,value)
参数 | 说明 |
pin | 指定引脚编号的配置 |
value | 配置输出的电平。HIGH:输出高电平;LOW:输出低电平 |
四、代码编写
可以看见我的开发板的LED灯是低电平导通,并且接到了GPIO2引脚。
示例代码如下:
void setup() {
// put your setup code here, to run once:
pinMode(2,OUTPUT); //这里根据自己选择的ESP8266的型号原理图确定,我的时GPIO2引脚。
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(2,LOW); //这里看自己ESP8266原理图的LED接法,我的是共阳极的当低电平就导通。
}
在这里注意一下,那些入口参数除了数字,字符得大写要不然就会报错,如下图所示。
五、编译、烧录、运行
在我前一篇博文就介绍了如何编译、烧录,这里就不再过多赘述了,还望谅解!
这里就可以看见LED灯被点亮了。
六、代码进阶
让LED灯以1s为间隔闪烁。因为在这里用到了延时函数,接下来就简单的介绍以下库中带的延时函数delay()。
delay(ms)
这是一个毫秒级延时函数,以后还会再用着到。
接下来就演示进阶示例代码:
void setup() {
// put your setup code here, to run once:
pinMode(2,OUTPUT); //这里根据自己选择的ESP8266的型号原理图确定,我的时GPIO2引脚。
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(2,LOW); //这里看自己ESP8266原理图的LED接法,我的是共阳极的当低电平就导通。
delay(1000); //延时1s
digitalWrite(2,HIGH); //给高电平就熄灭
delay(1000);
}
现象就不演视了,就是LED灯以1s为时间间隔闪烁。
结束语
关于此次基于Arduino IDE开发的ESP8266(ESP-12F)项目1 ——点亮LED灯项目的介绍就讲到这里了,如果什么问题请再评论区留言。