ESP8266 RTOS SDK开发
ESP8266 RTOS SDK开发
一、源码RTOS SDK包的下载和编译
git clone https://gitee.com/Taury/ESP8266_RTOS_SDK.git
修改.gitmodules文件
[submodule "components/json/cJSON"]
path = components/json/cJSON
url = ../../william_william/cJSON.git
[submodule "components/mbedtls/mbedtls"]
path = components/mbedtls/mbedtls
url = ../../william_william/mbedtls.git
[submodule "components/lwip/lwip"]
path = components/lwip/lwip
url = ../../william_william/esp-lwip.git
[submodule "components/mqtt/esp-mqtt"]
path = components/mqtt/esp-mqtt
url = ../../william_william/esp-mqtt.git
更新子模块
git submodule update --init --recursive
二、固件烧录
1.管脚定义

| 模式 | CH_PD(EN) | RST | GPIO15 | GPIO0 | GPIO2 | TXD0 |
|---|---|---|---|---|---|---|
| 下载模式 | 高 | 高 | 低 | 低 | 高 | 高 |
| 运行模式 | 高 | 高 | 低 | 高 | 高 | 高 |
| 测试模式 | 高 | 高 | - | - | - | 低 |
注:GPIO6~GPIO11被用于连接开发板的闪存(Flash Memory)因此建议不要使用GPIO6~GPIO11。请谨慎使用GPIO10,请勿使用GPIO9。(IO2 log调试默认波特率74880)
三、程序例程
## 1.PWM设置
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "esp_log.h"
#include "esp_system.h"
#include "esp_err.h"
#include "esp8266/gpio_register.h"
#include "esp8266/pin_mux_register.h"
#include "driver/pwm.h"
#define PWM_0_OUT_IO_NUM 15
static const char *TAG = "main";
// pwm pin number
const uint32_t pin_num[1] = {PWM_0_OUT_IO_NUM};
// phase table, delay = (phase[x]/360)*PERIOD
float phase[1] = {0};
void buzzer_freq_set(uint32_t freq)
{
uint32_t period = 1000000 / freq;
uint32_t duty = period / 2;
pwm_set_period(period);
pwm_set_duty(0, duty);
pwm_start();
}
void app_main()
{
uint32_t pwm_period = 1000; // 1kHz
uint32_t pwm_duty = 500;
ESP_LOGI(TAG, "M.Y.Dodo\n");
pwm_init(pwm_period, &pwm_duty, 1, pin_num);
// pwm_set_phases(phase);
pwm_start();
uint32_t freq = 100;
buzzer_freq_set(freq);
int16_t count = 0;
while (1) {
count++;
if (count == 3) {
count = 0;
freq += 100;
buzzer_freq_set(freq);
}
vTaskDelay(1000 / portTICK_RATE_MS);
}
}
连接MQTT
ESP8266 RTOS SDK开发的更多相关文章
- 关于esp8266的SDK开发串口打印mismatch map 3,spi_size_map 6 system_partition_table_regist fail解决办法
最近在学习esp8266 用的sdk开发,烧录碰到个问题,本人使用的esp8266模块是esp8266-12f,模块是4M的也就是32Mbit 参考了网上的很多办法,大部分写的不清楚也没解决,摸索了几 ...
- ESP8266 RTOS SDK(IDF)编译环境搭建
前提条件 按照https://www.cnblogs.com/ansersion/p/10458171.html的步骤搭建非IDF环境 下载 https://github.com/espressif/ ...
- ESP8266 RTOS SDK编译环境搭建
前提条件 1. linux操作系统或者windows下的linux虚拟机或者OS X操作系统 2. 联网 下载 * [Mac](https://dl.espressif.com/dl/xtensa-l ...
- ESP8266 RTOS SDK烧写环境构建
简介 esptool是一个Python软件程序,适用于ESP8266等一系列芯片的烧写,灵活高效. 环境构建 在官网下载安装最新2.7版python (linux和os x一般会自带python2.7 ...
- ESP8266 SDK开发: 测试下诱人的程序
前言 这一节测试一下诱人的程序 实现的功能,APP通过SmartConfig给Wi-Fi模块配网并绑定设备,然后通过MQTT远程控制开发板的继电器, APP显示ESP8266采集的温湿度数据. 简而言 ...
- esp8266 SDK开发之环境搭建
最近在弄这个WiFi模块,发现网上SDK开发方面的资料很少,发现了一套视频教程,不过主讲人的讲课方式实在受不了.对基于SDK开发感兴趣的同学可以通过本帖在Ubuntu系统上通过Eclipes搭建开发环 ...
- ESP8266开发综合篇(SDK开发-视频教程总揽)
为了解决基础教程简单入门但不实用,项目方案非常实用但比较难的问题,开始推出8266开发综合篇 综合篇涉及到AT,LUA,SDK,LUA(sdk)开发,LUA和SDK开发会同步进行,后期再整理AT指令的 ...
- ESP8266 NON-OS SDK 和 RTOS SDK实现GPIO中断不同点
ESP8266 Non-OS SDK 和 RTOS SDK 实现GPIO的方法稍有不同: 对于 Non-OS SDK,比如需要把 MTDO 配置成输入,同时下降沿触发中断: gpio_init(voi ...
- 16-ESP8266 SDK开发基础入门篇--TCP 服务器 非RTOS运行版,串口透传(串口回调函数处理版)
https://www.cnblogs.com/yangfengwu/p/11105466.html 其实官方给的RTOS的版本就是在原先非RTOS版本上增加的 https://www.cnblogs ...
随机推荐
- 重学ES系列之变量的作用范围
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Kubebuilder模块
CRD创建 Group表示CRD所属的组,它可以支持多种不同版本.不同类型的资源构建,Version表示CRD的版本号,Kind表示CRD的类型 kubebuilder create api --gr ...
- linux系统调优工具
系统调优思路 性能优化就是找到系统处理中的瓶颈以及去除这些的过程,性能优化其实是对 OS 各子系统达到一种平衡的定义.具体步骤如下: 1. 系统的运行状况: CPU -> MEM -> D ...
- Nacos配置失败(java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all server)
解决: nacos服务器过载,可以删掉nacos文件夹下的data文件夹,重新启动.
- NC20439 [SHOI2017]期末考试
NC20439 [SHOI2017]期末考试 题目 题目描述 有 \(n\) 位同学,每位同学都参加了全部的 \(m\) 门课程的期末考试,都在焦急的等待成绩的公布.第 \(i\) 位同学希望在第 \ ...
- Properties集合中的方法store和Properties集合中的方法load
Properties集合中的方法store public class Demo01Properties { public static void main(String[] args) throws ...
- 浏览器中的原生base64方法
在web开发中,经常涉及到对文本.文件等进行base64编码处理,在之前的开发中,使用js-base64来进行处理,但其实浏览器已经原生包含了处理方法.性能更好,兼容性也更高. atob() - AS ...
- Qt+ECharts开发笔记(三):ECharts的柱状图介绍、基础使用和Qt封装Demo
前言 上一篇成功是EChart随着Qt窗口变化而变化,本篇将开始正式介绍柱状图介绍.基础使用,并将其封装一层Qt. 本篇的demo实现了隐藏js代码的方式,实现了一个条形图的基本交互方式,即Qt ...
- MySQL--排序检索数据(ORDER BY)
检索出的数据并不是以纯粹的随机顺序显示的.如果不排序,数据一般将以它在底层表中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺序将会受到MySQL重用回收存 ...
- 002 Redis使用及API
Redis的使用及相关API 1.作用: 提高查询效率 一定程度上可以减轻数据库服务器的冲击压力,从而保护了数据库 //1.是否包含key redisTemplate.hasKey(key) //2. ...