zoukankan      html  css  js  c++  java
  • ESP8266-12F学习之点亮一个LED灯

         点亮一个LED灯

        上一篇文章,我们介绍了怎么在Windows系统下搭建一个SEP8266的开发环境,那在这一篇文章中我们要开始来编写一个硬件入门经典小程序,如何点亮一个LED小灯,同时在这一章中我们还会介绍怎么样将编译好的程序下载到ESP8266-12f中。

         第一步:下载官方demo框架,从http://wiki.ai-thinker.com/esp8266/examples 下载,当然,也可以在文章最后下载我的附件,下载完后,我们将文件添加到SDK中进行编译,步骤如图:

         

        

             点开C/C++分支,并选中Existing Code as Makefile Project:

         

        

             去除C++支持,选中 Cygwin GCC,点击Browser,选中我们解压后所在的目录。点击finish。

          

            到这里,应该就成功的将我们的工程文件添加到SKD当中了,红色框内为所添加的文件。

            

             接下来开始编写程序部分,这里我们涉及到ESP8266-12F的IO口的控制,控制方法其实和STM32库函数类似比如

    • 先选定一个GPIO管脚。用 PIN_FUNC_SELECT(PIN_NAME, FUNC) 函数。比如我选定GPIO14这个管脚,则这样写:PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14);

    • 如果你设置这个管脚为高电平,则这样写:GPIO_OUTPUT_SET(GPIO_ID_PIN(14), 1);

              如果你设置其为读取状态功能则,这样初始化: GPIO_DIS_OUTPUT(GPIO_ID_PIN(14)) ;

              

             

               具体请参考;乐鑫官方手册,这个我会放到文章底部的附件中。

              

                  开始编译工程前,我们要先修改程序,在其的 app ->user –> user_main.c 下的修改如下,让灯间断亮灭。 
     1 /*********************************************************************************************
     2 程序名:  控制LED(读取GPIO口的状态)
     3 编写人:     
     4 编写时间:  
     5 硬件支持:  
     6 接口说明:  
     7 修改日志:  
     8   NO.1-                                
     9 /*********************************************************************************************
    10 说明:
    11 
    12 /*********************************************************************************************/
    13 #include "driver/uart.h"  //串口0需要的头文件
    14 #include "osapi.h"  //串口1需要的头文件
    15 #include "user_interface.h" //WIFI连接需要的头文件
    16 #include "gpio.h"  //端口控制需要的头文件
    17 
    18 void delay_ms(uint16 x)
    19 {
    20     for(;x>0;x--)
    21     {
    22       os_delay_us(1000);
    23     }
    24 }
    25 
    26 void  user_init()//初始化
    27 {
    28     
    29 
    30     uart_init(57600, 57600);//设置串口0和串口1的波特率
    31 
    32     PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14);//选择GPIO14
    33     GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);//GPIO12为低
    34 
    35     while(1)
    36     {
    37         system_soft_wdt_feed();//这里我们喂下看门狗  ,不让看门狗复位
    38                 GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 0);           //GPIO14为低
    39                 delay_ms(1000);
    40                 GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);            //GPIO14为高
    41                 delay_ms(1000);
    42     
    43     }
    44 
    45 
    46 
    47 }
    48 
    49 void user_rf_pre_init()
    50 {
    51 
    52 }

             

             接下来是编译,注意这时候避免误报错误,直接把 Problems 栏目关掉,解释说,这个Problems 栏目报的错误不准确,只有Console 栏目下的输出为准,所以建议大家把 Problems 栏目关闭。
    • 之后建议大家每次编译项目前先进行 clear project,再 build project ,这样就保证了正确的代码可以完全被编译,如果正确的代码没有clear project就直接build project ,可能会报错。

    • Build Project :编译项目 ; Clean Project:清理项目,可以清理下缓存。

          

          选中工程文件,单击右键

           

          编译好后,出现如下区域情况,就说明编译成功了。

          

        接下来注意了,敲黑板,划重点!!!我们要开始将编译好的程序烧录到ESP8266-12F中,下面的方法只适用于ESP8266-12F,别的型号不保证能成功哦,如果你不确定你的芯片型号,可以将芯片反过来看反面的丝印

                                                                       

                       

              下载烧录工具:http://www.espressif.com/zh-hans/support/download/other-tools,请到这里下载,安装好后界面如下:

               

               根据上面的编译,我们看到了如下烧录信息:

              boot.bin------------>0x00000
              user1.4096.new.6.bin--->0x01000

              这个就是我们烧录时需要填入的地址,同时还提示我们,生成了user1.4096.new.6.bin 文件在 工程文件中的bin/upgrade目录下,我们再烧录软件中将路径依次填入如下:

               

             

            点击start开始下载,无响应时点击复位按钮,会看到正在下载,下载完成后记得将GPIO0引脚与GND断开,再按下复位键,程序就能运行了。

            PS:忘记了,LED灯接的IO口是GPIO12,这里就不贴图了哈!

            没找到插入附件的地方在哪,这里附上百度云链接:链接:https://pan.baidu.com/s/1nuXvtBN 密码:iszz

             

              

          

        

  • 相关阅读:
    linux加载和卸载模块
    java 面试题之银行业务系统
    java 面试题之交通灯管理系统
    java 实现类似spring的可配置的AOP框架
    分析JVM动态生成的类
    最长上升子序列(模板)
    项目管理模式
    让thinkphp 支持ftp上传到远程,ftp删除
    hdu 1280 前m大的数 哈希
    互联网+脑科学,中国脑计划的机会
  • 原文地址:https://www.cnblogs.com/xiongzongxiong/p/8093343.html
Copyright © 2011-2022 走看看