我是靠谱客的博主 淡淡荷花,最近开发中收集的这篇文章主要介绍ESP8266固件SDK开发之点亮开发板上的LED灯(基于ESP-12F),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、硬件部分

如下图,这是我ESP-12F的电路原理图关于LED灯的部分:
在这里插入图片描述
对应ESP-12F的管脚:
在这里插入图片描述

二、SDK版本

SDK版本(之前移植的NONOS_SDK-2.2.0版本)
https://blog.csdn.net/morixinguan/article/details/101000989

三、软件编程与下载

一上来就要操作,不会怎么办,安信可官方已经提供了完善的文档,写得非常详细,这点完全不担心。
https://wiki.ai-thinker.com/esp8266/docs
我们在上门这个网站找到这个文档,下载中文版本的。
在这里插入图片描述
打开这个手册的外设驱动接口的GPIO接口部分:
在这里插入图片描述
通过文档说明,我们了解到要利用ESP-12F驱动一个LED灯,需要完成如下步骤:
1、管脚功能选择
2、将管脚设置为输出模式
3、输出对应的电平

关于第一个,eagle_soc.h文件的这个宏可以用来实现管脚功能的选择

#define PIN_FUNC_SELECT(PIN_NAME, FUNC)  do { 
    WRITE_PERI_REG(PIN_NAME,   
                                (READ_PERI_REG(PIN_NAME) 
                                     &  (~(PERIPHS_IO_MUX_FUNC<<PERIPHS_IO_MUX_FUNC_S)))  
                                     |( (((FUNC&BIT2)<<2)|(FUNC&0x3))<<PERIPHS_IO_MUX_FUNC_S) );  
    } while (0)

其中参数一PIN_NAME表示管脚名称、参数二FUNC表示管脚功能。
在这里插入图片描述
参考esp8266_pin_list.xls文档描述,PIN_NAME中关于GPIO4的管脚名称和管脚功能为如下

#define PERIPHS_IO_MUX_GPIO4_U          (PERIPHS_IO_MUX + 0x3C)
#define FUNC_GPIO4                      0

根据ESP8266 SDK编程手册关于GPIO管脚状态的设置:
在这里插入图片描述
根据示例提供,下面这句话的意思是将GPIO4设置为IO口。

PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U, FUNC_GPIO4);

接下来要点灯了,我们看到GPIO输入输出相关的宏定义:
在这里插入图片描述根据前面的原理图,我们只需要把GPIO4管脚拉低就可以点亮该管脚的LED灯啦,就是输出一个低电平,所以我们选用的是GPIO_OUTPUT_SET这个宏定义,这个宏的意识是将相应的管脚设置为输出模式并输出对应的电平。
注意区别上图几个参数:
1、PIN_NAME:指的是管脚名称
2、FUNC:指的是管脚功能 功能序号-1
3、gpio_no:指的是 IO端口序号 GPIO_ID_PIN(IO端口序号)
例如GPIO14,那么就是GPIO_ID_PIN(14)
所以设置IO为低电平也很简单,这里是GPIO4。

GPIO_OUTPUT_SET(GPIO_ID_PIN(4),0);

接下来修改user_main,实现闪灯:

void ICACHE_FLASH_ATTR
delay_ms(int ms)
{
	os_delay_us(ms*1000);
}

/******************************************************************************
 * FunctionName : user_init
 * Description  : entry of user application, init user function here
 * Parameters   : none
 * Returns      : none
*******************************************************************************/
void ICACHE_FLASH_ATTR
user_init(void)
{
	u8 led_status = 1;
    os_printf("SDK version:%sn", system_get_sdk_version());
    os_printf("Hello Yangyuanxinn");
    os_printf("Build this SDK from 20190922n");
    //1、选中GPIO4管脚
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U, FUNC_GPIO4);
    //2、设置GPIO4管脚输出高电平,先熄灭
    GPIO_OUTPUT_SET(GPIO_ID_PIN(4),1);

    while(1)
    {
    	//开始进来要喂狗,防止ESP8266复位
    	system_soft_wdt_feed();
    	//设置GPIO输出
    	GPIO_OUTPUT_SET(GPIO_ID_PIN(4),led_status);
    	//状态取反
    	led_status = ! led_status ;
    	//延时200ms
    	delay_ms(200);
    }

}

编译完成后将生成的文件下载到ESP-12F开发板中。
在这里插入图片描述
可以看到,开发板上的LED灯每200ms会翻转一次:
在这里插入图片描述
串口输出,默认波特率为74800。
在这里插入图片描述
工程源码下载:
链接:https://pan.baidu.com/s/1TbrLJ7R_3g0CBshsU6Aa_A
提取码:jfj7

最后

以上就是淡淡荷花为你收集整理的ESP8266固件SDK开发之点亮开发板上的LED灯(基于ESP-12F)的全部内容,希望文章能够帮你解决ESP8266固件SDK开发之点亮开发板上的LED灯(基于ESP-12F)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(26)

评论列表共有 0 条评论

立即
投稿
返回
顶部