本次写这篇文章是自己做一下学习记录,如有错误,还请大家斧正!!!
日后及时修正
!感谢支持!
欢迎大家的关注
点赞
收藏
留言
目录
前言
一、新建工程
二、项目函数介绍
三、代码编写
四、编译、烧录、运行
结束语
前言
中断是每一位单片机开发者比较实用的一个基本外设、无论你是学习51单片机还是STM32等,都会接触到这个项目。可以说中断的合理使用可以让你的程序执行起来有意想不到的效果。这里除了中断,还会介绍两个高级的输入输出函数。
一、新建工程
首先打开Arduino IDE,点击 文件——> 点击新建,就会生成一个新的工程模板了。 (还可以点任务栏中“折了一角的书页”快速新建)。
然后给项目重命名,然后再保存。
这样一个新的工程就建好了。
二、项目函数介绍
1. 中断函数
无论什么单片机都具备中断功能,这款单片机也不例外,接下来就带大家接触它的中断服务函数。
这里我就来解释以下这个函数说明一下它的功能及用途:
(1)attachInterrupt(pin, ISR, mode)函数
功能 | 响应中断的处理程序——中断函数,当中断触发后,ESP8266便会运行这个函数。 |
作用 | 对中断引脚进行初始化配置,以开启ESP8266的外部中断功能 |
attachInterrupt(pin, ISR, mode)
参数 | 说明 |
pin | 指定引脚编号的配置 |
value | 中断函数名 |
mode | 中断模式。有以下两种常用模式:LOW:低电平触发;HIGH:高电平触发; |
(2)detachInterrupt(pin)函数
功能 | 如果你不需要使用外部中断了,你可以用中断分离函数detachInterrupt() 来关闭中断功能。 |
参数 | 需要禁用中断的引脚。 |
2. 高级输入输出函数
(1)tone()函数
功能 | 主要用于ESP8266连接蜂鸣器或扬声器发声。 |
作用 | 可以让指定引脚产生一个占空比为50%的指定频率的方波。 |
tone(pin, frequency) //或 tone(pin, frequency, duration)
参数 | 说明 |
pin | 需要输出方波的引脚 |
frequency | 输出的频率,unsigned int型 |
duration | 方波持续的时间,单位毫秒。如果没有该参数,ESP8266将持续发出设定的音调,直到你改变发声频率。 |
(2)noTone(pin)函数
功能 | 停止指定引脚上的方波输出。 |
参数 | 需要停止方波输出的引脚 |
(3)pulseIn()函数
检测指定引脚上的脉冲信号宽度。
说明:例如当要检测高电平脉冲时,pulseIn() 会等待指定引脚输入的电平变高,当变高后开始记时,直到输入电平变低,停止计时。pulseln() 函数会返回这个脉冲信号持续的时间,即这个脉冲的宽度。函数还可以设定超时时间。如果超过设定时间,仍未检测到脉冲,则会退出pulseIn()函数并返回0。当没有设定超时时间时,pulseIn() 会默认1秒钟的超时时间。
pulseIn(pin, value) //或 pulseIn(pin, value, timeout)
参数 | 说明 |
pin | 需要读取脉冲的引脚 |
value | 需要读取的脉冲类型,HIGH或LOW |
timeout | 超时时间,单位微秒,数据类型为无符号长整型 |
返回值 | 返回脉冲宽度,单位微秒,数据类型为无符号长整型。如果在指定时间内没有检测到脉冲,则返回0。 |
三、代码编写
示例:用中断控制下的按键点亮LED灯
示例代码如下:
void setup() {
// put your setup code here, to run once:
pinMode(2,OUTPUT);
pinMode(5,INPUT);
}
void LED_On(void)
{
digitalWrite(2,LOW);
}
//void LED_Off(void)
//{
// digitalWrite(2,HIGH);
detachInterrupt(5);
//}
void loop() {
// put your main code here, to run repeatedly:
// if(digitalRead(5)==0)
// {
attachInterrupt(5,LED_On,LOW);
detachInterrupt(5);
// }
// else
// LED_Off();
}
四、编译、烧录、运行
在我前一篇博文就介绍了如何编译、烧录,这里就不再过多赘述了,还望谅解!
应视频的插入不便,这里就用图片代替,抱歉;其功能可以一目了然,当按键按下触发中断LED灯就被点亮了。
结束语
关于此次基于Arduino IDE开发的ESP8266(ESP-12F)项目4 ——中断及高级输入输出项目的介绍就讲到这里了,此次教程的重点在于中断的使用,关于高级输入输出函数我给出链接供大家学习。调声函数 (arduino.cn);pulseIn() (arduino.cn)。如果什么问题请再评论区留言。
接下来会陆陆续续发布一些其他的教程,敬请期待!感谢大家的支持!如有觉得这篇文章对你有所帮助的,还请点赞、收藏吧!