关于ESP8266小飞机的设计和源码解读开始了!
8266的数据总线
一些设计指南
因为IIC传感器很多,这里也看一下
因为对于ESP8266来讲,纯的Arduino开发其实没有那么多,所以要结合底层看。
管脚定义先看
i的意思感觉是内部的意思,就是加载到内存的意思,我说这样理解的
ESP8266的开发有两个,NoOS,RTOS,我一开始以为Arduino是NoOS的,但是我错了,其实是RTOS实现的。
因为出现了很多的PWM的使用,所以一开始我们就先睹为快。
在RTOS的这个位置。
所有的API,也就是调用这些
随便看个头,PWM的启动
PWM的初始化
也对esp_err_t感兴趣,在这里有定义
我觉得我们可以看下NoOS里面的API再看RTOS的。
是软件实现的,还有不可屏蔽的中断
这打太极的写法,软件算法
这是PWM的参数,这肯定够我玩耍了
代码实例
先不要追究最上面的结构体是什么,先可以看具体函数的作用。PWM的初始化,开启PWM,设置占空比,获取占空比,设置频率,得到频率。
配置几路,这个参数会传到这个地方
可以看一下PWM的初始化配置。周期,各通道的占空比。传入的通道数,引脚引脚的硬件参数。
我们结合飞控看看怎么配置的:
要用的参数都用宏写好,四旋翼是4个通道,使用4,寄存器上面也要写好
这个结构体的写的是GPIO的寄存器,对应PIN脚的IO复用值,GPIO的序号。是一个n x 3的数组指针。
4通道还是
包括处理器也有自己独特的数据封装
开始初始化的配置
注意看PWM_init()函数的参数。
使用for循环将各通道的占空比参数都设置
设置周期
设置占空比
其实还有一些东西没有说明白。
就这些,其实对于写文章来讲,我现在完全可以就写下面的,但是为了学习的需要,这里就再具体的写。
文档要看技术参考
这个寄存器的名字叫,功能选择寄存器
有一个Excel的REG表,第一个就是
大概就是这样的设计方法,在一个MUX上面按照顺序排寄存器
第二个参数是在寄存器的组里面选第三个IO的功能,就是说这个脚上面可以有这么多的功能,现在用第三个的意思。
就是这样,注意到reg是0定义,所以功能记得+1
https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/api-reference/peripherals/pwm.html
ESP8266 RTOS
https://github.com/espressif/ESP8266_RTOS_SDK
RTOS的Doc
http://wiring.org.co/
Arduino的原型
https://www.espressif.com/zh-hans/support/documents/technical-documents?keys=&field_type_tid%5B%5D=14