(1)ESP8266 nonos-sdk 3.0万物基于点灯(串口打印"Hello world"及按钮控制点灯)

本文档详细介绍了如何使用ESP8266非OS SDK 3.0进行开发,包括注册Flash分区表、修改串口波特率、串口打印"Hello world"以及通过按钮控制LED灯的亮灭。首先,根据官方文档修改用户主函数user_main.c以注册分区表,然后调整串口波特率为115200。接着,实现串口输出"Hello world",并介绍如何使用UART和GPIO接口。最后,通过按钮控制LED灯的开关,为ESP8266的开发打下基础。
摘要由CSDN通过智能技术生成

前面一篇博客记录了如何一步一步搭建ESP8266的nonos-sdk 3.0的开发环境,并且测试了开发环境能够正常使用。既然环境已经搭建完成,那么后面接着就要正式进入ESP8266的学习和动手开发小项目了。众所周知,不管是什么类型的单片机,对其上手的第一步当然是"庄重"点灯仪式了。本篇博客主要记录的就是实现如何使用串口打印"Hello world"以及使用按钮控制LED灯的亮灭。

参考资料

既然要学习和使用ESP8266,那么官方的各种参考手册自不必多说:

注册Flash分区表

官方SDK的文档中提到,NONOS-SDK 3.0中新增了partition table(我的理解就是Flash的布局分区表):

在这里插入图片描述相关说明
SDK参考手册中的介绍:在这里插入图片描述

因为目前我使用的是不带在线固件升级的Flash布局方案,即Non-FOTA的Flash 布局方案,所以我们要按照对应的说明修改代码。

在这里插入图片描述

以上一篇博客为基础,位于:工程目录/IoT_demo/user/user_main.c 的C源码文件包含了ESP8266 Non-OS SDK项目的程序入口函数user_init(),后面我们修改和编写程序主要在这个文件中进行。官方提供的IoT_Demo的user_main.c的代码如下:
我把代码文件开头部分的那段文档注释删了

#include "ets_sys.h"
#include "osapi.h"

#include "user_interface.h"

#include "user_devicefind.h"
#include "user_webserver.h"

#if ESP_PLATFORM
#include "user_esp_platform.h"
#endif

#if ((SPI_FLASH_SIZE_MAP == 0) || (SPI_FLASH_SIZE_MAP == 1))
#error "The flash map is not supported"
#elif (SPI_FLASH_SIZE_MAP == 2)
#define SYSTEM_PARTITION_OTA_SIZE							0x6A000
#define SYSTEM_PARTITION_OTA_2_ADDR							0x81000
#define SYSTEM_PARTITION_RF_CAL_ADDR						0xfb000
#define SYSTEM_PARTITION_PHY_DATA_ADDR						0xfc000
#define SYSTEM_PARTITION_SYSTEM_PARAMETER_ADDR				0xfd000
#define SYSTEM_PARTITION_CUSTOMER_PRIV_PARAM_ADDR           0x7c000
#elif (SPI_FLASH_SIZE_MAP == 3)
#define SYSTEM_PARTITION_OTA_SIZE							0x6A000
#define SYSTEM_PARTITION_OTA_2_ADDR							0x81000
#define SYSTEM_PARTITION_RF_CAL_ADDR						0x1fb000
#define SYSTEM_PARTITION_PHY_DATA_ADDR						0x1fc000
#define SYSTEM_PARTITION_SYSTEM_PARAMETER_ADDR				0x1fd000
#define SYSTEM_PARTITION_CUSTOMER_PRIV_PARAM_ADDR           0x7c000
#elif (SPI_FLASH_SIZE_MAP == 4)
#define SYSTEM_PARTITION_OTA_SIZE							0x6A000
#define SYSTEM_PARTITION_OTA_2_ADDR							0x81000
#define SYSTEM_PARTITION_RF_CAL_ADDR						0x3fb000
#define SYSTEM_PARTITION_PHY_DATA_ADDR						0x3fc000
#define SYSTEM_PARTITION_SYSTEM_PARAMETER_ADDR				0x3fd000
#define SYSTEM_PARTITION_CUSTOMER_PRIV_PARAM_ADDR           0x7c000
#elif (SPI_FLASH_SIZE_MAP == 5)
#define SYSTEM_PARTITION_OTA_SIZE							0x6A000
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值