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 ... 
随机推荐
- 2.1 动为进程,静为程序 -进程概论 -《zobolの操作系统学习札记》
			2.1 动为进程,静为程序 -进程概论 目录 2.1 动为进程,静为程序 -进程概论 问1:发明进程的原因? 问2:现在计算机中的进程的定义是什么? 问3:为什么进程跟处理器的联系更密切? 问4:进程 ... 
- 【Azure 应用服务】App Service 开启了私有终结点(Private Endpoint)模式后,如何来实现公网Git部署呢?
			问题描述 因为中国区的App Service对外(公网访问)需要进行ICP备案,所以很多情况下,Web应用部署到App Service后,都是通过Application Gateway(应用程序网关) ... 
- Redis 切片集群的数据倾斜分析
			Redis 中如何应对数据倾斜 什么是数据倾斜 数据量倾斜 bigkey导致倾斜 Slot分配不均衡导致倾斜 Hash Tag导致倾斜 数据访问倾斜 如何发现 Hot Key Hot Key 如何解决 ... 
- RPA 快手自动上传机器人
			1.打开账号Cookie预存表格 2.机器人自动登录账号 3.机器人开始按照预设视频位置开始自动上传视频 4.机器人开始自动填写视频相关信息内容 5.完成后,可自动切换下一个账号继续上传 
- bat实现删除BCUnrar.dll实现无限使用
			删除项目:计算机\HKEY_CURRENT_USER\Software\Scooter Software\Beyond Compare 4下的CacheId 项可以实现Beyond Compare 4 ... 
- JQuery中html(),val(),text()-的区别
			1.HTML html():取得第一个匹配元素的html内容.这个函数不能用于XML文档.但可以用于XHTML文档 html(val):设置每一个匹配元素的html内容.这个函数不能用于XML文档.但 ... 
- linux下的nginx日志自动备份压缩--日志切割机
			部署完毕nginx之后,发现自己的/var/log/nginx/*log的日志不会压缩,一直都是一个文本写日志, 时间久了,日志文件内存过于增加,将会导致在日志添加过程效率降低,延长时间. 默认安装的 ... 
- gpg加解密异常
			在本地windows电脑和开发环境(linux) ,都不报错,但是在测试环境(linux) 上报错. 报错信息 org.bouncycastle.openpgp.PGPException: Excep ... 
- CA证书、自颁发证书、自签名证书联系
			一.理论基础 ssl:secure socket layer(安全套接层协议)的缩写,通过此协议可以保证两个应用通信的可靠性和保密性.openssl:是ssl协议的实现.提供了对称加密算法.非对称加密 ... 
- 如何用 银行卡OCR 接口进行快速开发
			最近公司项目有一个银行卡识别的小需求,想着如果用现成的API就可以大大提高开发效率,在网上的API商店搜索了一番,发现了 APISpace,它里面的银行卡OCR非常符合我的开发需求. 银行卡OCR ... 
