使用ESP8266的PWM功能,写了一个简单的呼吸灯程序
来源:互联网 发布:艾德软件 编辑:程序博客网 时间:2024/04/28 08:17
1.使用乐鑫官网的esp8266_nonos_sdk_v1.5.4_16_05_20,用ESP8266的PWM功能,写了一个简单的呼吸灯程序
2.驱动IO口分别为GPIO12 13 14
3.使用的模块为nodemcu(ESP-12D)
4.此呼吸灯我目前是用共阴极的灯珠实现的
5.原生SDK修改之处:
a.将 driver_lib 和 examples/IoT_Demo 下的文件剪切到 app目录下
附件:点击打开链接
2.驱动IO口分别为GPIO12 13 14
3.使用的模块为nodemcu(ESP-12D)
4.此呼吸灯我目前是用共阴极的灯珠实现的
5.原生SDK修改之处:
a.将 driver_lib 和 examples/IoT_Demo 下的文件剪切到 app目录下
b.修改app/user/user_main.c文件
/****user_main.c*****/#include "ets_sys.h"#include "osapi.h"#include "user_interface.h"#include "user_light.h"#include "gpio.h"LOCAL os_timer_t os_timer;LOCAL uint8 set_duty=0; /** PWM占空比变量 */LOCAL uint8 dir=1; /** 占空比加减标志 */static void ESP8266_PWM_RUN(void){ if (1==dir) { set_duty ++; if ( set_duty >= 100 ) { dir=0; } } else { set_duty --; if ( set_duty <= 0 ) { dir=1; } } pwm_set_duty(set_duty,0); pwm_set_duty(set_duty,1); pwm_set_duty(set_duty,2); pwm_start(); }static void PWM_Init(void){ uint32 io_info[3][3]={ // 该参数在ESP8266 SDK的user_light.h中 {PWM_0_OUT_IO_MUX,PWM_0_OUT_IO_FUNC,PWM_0_OUT_IO_NUM}, //GPIO12 {PWM_2_OUT_IO_MUX,PWM_2_OUT_IO_FUNC,PWM_2_OUT_IO_NUM}, //GPIO13 {PWM_3_OUT_IO_MUX,PWM_3_OUT_IO_FUNC,PWM_3_OUT_IO_NUM} //GPIO14 }; uint32 duty[3]= {0}; pwm_init(1000,duty,3,io_info); //配置PWM的周期为1000us,占空比为0,PWM通道数量为3 os_timer_disarm(&os_timer); os_timer_setfn(&os_timer,(os_timer_func_t*)(ESP8266_PWM_RUN),NULL); os_timer_arm( &os_timer,30,1); }void user_rf_pre_init(void){}void user_init(void){ PWM_Init();}
附件:点击打开链接
阅读全文
0 0
- 使用ESP8266的PWM功能,写了一个简单的呼吸灯程序
- 基于PWM的呼吸灯
- 基于stm32的pwm呼吸灯
- 写了一个简单的AJAX程序
- 软件模拟PWM——呼吸灯小程序的理解
- JAVA版树莓派呼吸灯完整程序(PWM)及碰到的各种坑
- JavaSE写的记事本程序,实现了简单的功能
- 学了String写的一个简单的小功能。
- 使用JNI写一个简单的程序
- 51单片机PWM的控制(呼吸灯)
- 自己写了一个简单的画图程序
- 【PIC32MZ】PWM呼吸灯
- PWM输出,呼吸灯
- ESP8266-SDK的3路PWM输出
- 使用winsock+UDP写的一个简单接收端程序
- 使用winsock+UDP写的一个简单发送端程序
- 使用TCP+winsock写的一个简单服务器程序
- 使用TCP+winsock写的一个简单客户端程序
- Atom 使用记录
- 神秘的.user.ini文件
- OpenGL_2:我的第一个窗口
- IPC-(进程间通信)-实现方式
- garbage following instruction -- `dmb ish'
- 使用ESP8266的PWM功能,写了一个简单的呼吸灯程序
- TSP(旅行商问题)-状压dp
- 【状压DP+高精】【cofun1370】走道铺砖问题
- 用construct2制作一个简单的游戏
- 数据库优化
- 软件构造 异常处理的5个建议
- Jedis远程连接Redis服务器报错(connect time out)
- Ajax 如何提交集合到mvc后台 1,前端请求如下 复制代码 复制代码 1 var apply = { CompanyName: $("[name='corpName']").val(),
- MongoDB_01