12-ESP8266 SDK开发基础入门篇--PWM,呼吸灯
https://www.cnblogs.com/yangfengwu/p/11094085.html
PWM其实没有什么,就是看着官方给的API,,,然后就是用呗
对了,其实对于RTOS SDK版本的开发可以直接去参考非RTOS SDK的API 这个直接有例子
其实嵌入操作系统也没有什么,底层自带的外设硬件功能该怎么样还是怎么样,操作系统也不能改变什么,,操作系统的存在只是去操作咱定义的函数,让这些函数执行的时候快速的切换执行...


我直接说第三个参数
第三个参数是说要定义一个 这样的数组 [n][3]

其实就是为了可以一次性配置多个引脚.....
一开始我在想一维的不行吗.........给你多个引脚的寄存器地址不就可以了????
但是呢官方给的配置PWM输出的函数呢..每个引脚都需要填三个参数....不清楚为什么
第一个参数填引脚的寄存器地址 寄存器地址好说,咱所有的配置引脚其实都是配置这个引脚的寄存器(如果你看过我的STM32带你入坑系列)
第二个参数
填写这个管脚的复用值,这个值不一样,这个引脚的功能就不一样
然后我解释一下,假设是GPIO12管脚,,,说一下哈,记住就行,这是我看了很多资料才知道的....具体官方在哪里写的,,我也没有找到
记住哈



所以写3就可以
还有一点注意这几个

其实官方给咱们准备好了


好了可以清空脑子了 所以的到上面的文件去看就可以 想配置GPIO的复用功能
假设函数的有个参数是填写复用功能,假设配置GPIO12作为普通GPIO 就填 FUNC_GPIO12
作为SPI就填 FUNC_HSPIQ_MISO
其实这是我纳闷的...我想实现PWM 难道不就是使用普通的GPIO 官方的API内部直接设置这个GPIO的寄存器的相应位置,让GPIO作为普通的不就完了...不明白...不明白...
还有第三个参数..

就是


这个也是我纳闷的......给你了GPIO的寄存器地址了,直接操作寄存器不就可以了........why?????
假设控制GPIO5输出PWM
第一需要GPIO5的寄存器地址

其实最全的是在

第二个参数,,咱输出PWM肯定是让GPIO5作为普通输出,所以

第三个 填5就可以
uint32 pin_info_list[1][3]={PERIPHS_IO_MUX_GPIO5_U,FUNC_GPIO5,5};
//引脚寄存器地址 复用功能 引脚标号GOIOXX 没有对应的GPIO5宏定义,所以直接5 如果配置GPIO12 就写12


由于第二个参数也是指针类型,所以咱需要定义一个数组,其实是因为最后一个参数
uint32 pin_info_list[1][3]={PERIPHS_IO_MUX_GPIO5_U,FUNC_GPIO5,5};
uint32 duty[1]={100};//高电平时间是100us
我写的是配置一个引脚,,如果配置两个 GPIO5 和 GPIO12
uint32 pin_info_list[2][3]={{PERIPHS_IO_MUX_GPIO5_U,FUNC_GPIO5,5} , {PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12,12} } ;
uint32 duty[2]={100,500};//GPIO5 高电平时间是100us GPIO12高电平时间是500us
下面初始化
pwm_init(1000, duty, 1, pin_info_list); 第一个我测试的...1000us的时候最好使,也就是1Khz,,,
我填10000 100hz 产生的周期是对的10000us 但是duty填什么都有问题......
然后启动

pwm_init(, duty, , pin_info_list);//周期1000us 高电平时间100us 1 --就配置了一个管脚,因为数组是[1][3] pin_info_list--数组
pwm_start();

下载测试

现在灯是微微亮

好现在做个呼吸灯
首先要明白呼吸灯的原理
其实说白了就是控制灯的PWM周期不变,假设一开始占空比是0 输出高电平时间是 0
然后慢慢的增加高电平的输出时间直至达到和周期一样 灯就会越来越亮,直至最亮了 因为全部输出高电平了
然后慢慢的减小高电平的输出时间直至0 灯就会越来越暗,直至灭
慢慢的那个就用个定时器做
然后在定时器里面控制输出的占空比从0变到最大 再从最大变到 0 然后循环
为了程序简洁修改下



大家自行测试吧....
然后注意几个地方
以前的文档这样说的

现在的这样说的...我不测试了哈...大家自己测测

好,下一节,咱用上位机控制Wi-Fi的引脚输出PWM的占空比
https://www.cnblogs.com/yangfengwu/p/11102026.html
12-ESP8266 SDK开发基础入门篇--PWM,呼吸灯的更多相关文章
- 1-ESP8266 SDK开发基础入门篇--开发环境搭建
因为今天终于做好了自己的另一块工控板,所以我就开始写基础公开篇的内容,希望自己小小的努力能够帮到大家 自己做的另一块板子 https://www.cnblogs.com/yangfengwu/cate ...
- 25-ESP8266 SDK开发基础入门篇--控制WIFI连接路由器
https://www.cnblogs.com/yangfengwu/p/11324411.html 说个事情,现在SDK的版本已经出到3.0了,但是我还是使用2.0 如果只是为了学习研究 选择3 ...
- 16-ESP8266 SDK开发基础入门篇--TCP 服务器 非RTOS运行版,串口透传(串口回调函数处理版)
https://www.cnblogs.com/yangfengwu/p/11105466.html 其实官方给的RTOS的版本就是在原先非RTOS版本上增加的 https://www.cnblogs ...
- 24-ESP8266 SDK开发基础入门篇--Android TCP客户端.控制 Wi-Fi输出PWM的占空比,调节LED亮度
https://www.cnblogs.com/yangfengwu/p/11204436.html 刚才有人说需要点鸡汤.... 我想想哈;我还没问关于哪方面的鸡汤呢!!! 我所一直走的路线 第一: ...
- 13-ESP8266 SDK开发基础入门篇--上位机串口控制 Wi-Fi输出PWM的占空比,IEEE754规约
https://www.cnblogs.com/yangfengwu/p/11100552.html 这节做个上位机控制Wi-Fi引脚输出的PWM占空比信号,灯的亮度就可以用上位机控制了 大家可以自己 ...
- 15-ESP8266 SDK开发基础入门篇--上位机串口控制 Wi-Fi输出PWM的占空比,调节LED亮度,上位机程序编写
https://www.cnblogs.com/yangfengwu/p/11104167.html 先说一下整体思路哈.. 咱滑动的时候 会进入这个,然后咱呢不直接从这个里面写发送 因为这样的话太快 ...
- 14-ESP8266 SDK开发基础入门篇--上位机串口控制 Wi-Fi输出PWM的占空比,调节LED亮度,8266程序编写
https://www.cnblogs.com/yangfengwu/p/11102026.html 首先规定下协议 ,CRC16就不加了哈,最后我会附上CRC16的计算程序,大家有兴趣自己加上 上 ...
- 10-ESP8266 SDK开发基础入门篇--上位机通过串口控制ESP8266灯亮灭
https://www.cnblogs.com/yangfengwu/p/11087618.html 其实这一节就是对上三节的综合测试 https://www.cnblogs.com/yangfeng ...
- 26-ESP8266 SDK开发基础入门篇--编写WIFI模块 SmartConfig/Airkiss 一键配网
https://www.cnblogs.com/yangfengwu/p/11427504.html SmartConfig/Airkiss 配网需要APP/微信公众号,这节大家先使用我做好的APP/ ...
随机推荐
- Python进阶----进程之间通信(互斥锁,队列(参数:timeout和block),), ***生产消费者模型
Python进阶----进程之间通信(互斥锁,队列(参数:timeout和block),), ***生产消费者模型 一丶互斥锁 含义: 每个对象都对应于一个可称为" 互斥锁&qu ...
- 学习笔记之DBeaver
DBeaver Community | Free Universal Database Tool https://dbeaver.io/ Universal Database Tool Free mu ...
- 十一、vue生命周期诠释--带图
Vue 实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom→渲染.更新→渲染.卸载等一系列过程,我们称这是 Vue 的生命周期.通俗说就是 Vue 实例从创建到销毁的过程,就 ...
- Windows下搭建TensorFlow的GPU版本
1.下载python3.5.2版本并安装(必须是3.5版本,而且3.5后不带字母的版本) 2.使用下面的地址下载tensorflow的GPU版本 http://www.lfd.uci.edu/~goh ...
- C# EF框架 频繁连接性能损耗
目的 测试EF框架在一次连接中多次保存和多次连接的耗时对比 测试环境 数据库SqlServer 2012 R2 EF框架6.2.0版本 数据库内容 ID UserName Password Creat ...
- 使用EwoMail搭建属于自己的个人邮件服务器——超详细图文教程
版权声明:本文为CSDN博主「C_成」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/qq_41692307 ...
- 【DATAGUARD】物理dg的switchover切换(五)
[DATAGUARD]物理dg的switchover切换(五) 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其 ...
- 【RAC】rac环境下的数据库备份与还原
[RAC]rac环境下的数据库备份与还原 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~ ...
- k8s之pod与Pod控制器
k8s中最为重要的基础资源,pod,pod controller,service pod controller类型有多种需要向控制器赋值之后使用: kubectl命令使用 kubectk get no ...
- SpringCloud-Zuul源码分析和路由改造
在使用SpringCloud的时候准备使用Zuul作为微服务的网关,Zuul的默认路由方式主要是两种,一种是在配置 文件里直接指定静态路由,另一种是根据注册在Eureka的服务名自动匹配.比如如果有一 ...