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 ...
随机推荐
- bat-配置环境变量
查看环境变量 set 查看当前所有变量 set path 查看变量path的值 echo %xxx% 查看某一个环境变量 临时设置环境变量 set xxx=xxx set xxx= 永久设置环境变量 ...
- python超级有用的实战项目,拿走不谢~
写在前面的一点P话: Python是目前最好的编程语言之一.由于其可读性和对初学者的友好性,已被广泛使用. 那么要想学会并掌握Python,可以实战的练习项目是必不可少的. 直接上第一个项目~ 猜字游 ...
- docker安装Sentinel
1.拉取镜像 docker pull bladex/sentinel-dashboard:latest 2.运行 docker run --name sentinel --restart=always ...
- 解决github.com 的响应时间过长以及hosts配置不能保存的问题
github.com 的响应时间过长 1 获取github可以使用的DNS域名 DNS查询 选择TTL值最小的 2 修改hosts配置 打开之后在最后加上如下内容,保存即可 3 出现hosts不能保存 ...
- Pytorch Dataloader加速
在进行多卡训练的时候,经常会出现GPU利用率上不来的情况,无法发挥硬件的最大实力. 造成这种现象最有可能的原因是,CPU生成数据的能力,已经跟不上GPU处理数据的能力. 方法一 常见的方法为修改Dat ...
- JavaScript知识梳理
JS内功修炼 专业术语 类,封装,继承, 专业术语 babel 块级作用域 函数 扩展对象的功能性 解构 set和map js的类 改进的数组功能 Promise与异步编程 代理和反射 用模块封装代码 ...
- IO流原理及流的分类
IO原理 I/O是Input/Output的缩写, I/O技术是非常实用的技术,用于 处理设备之间的数据传输.如读/写文件,网络通讯等. Java程序中,对于数据的输入/输出操作以"流(st ...
- Nginx常用命令之启动与重启
1.测试新的Nginx程序是否正确 [test@P-SH-Nginx-01 nginx]$ ./sbin/nginx -t nginx: the configuration file /usr/loc ...
- mybatis-plus详解
旧的代码生成 记得导包,依赖如下 <!-- mybatis-plus --> <dependency> <groupId>com.baomidou</grou ...
- 业务可视化-让你的流程图"Run"起来(4.实际业务场景测试)
前言 首先,感谢大家对上一篇文章[业务可视化-让你的流程图"Run"起来(3.分支选择&跨语言分布式运行节点)]的支持. 下面我以实际业务场景为例,来介绍一下ladybug ...