我们这次读源码,一行一行的带你上车 https://github.com/espressif/arduino-esp32 先克隆下来esp32 ardunio core 就是这样的一个目录 我们从第一个默认.ino开始在读 第一个是6个Arduino的公共库, 第一个不说, 第二个是C语言标准的IO库(其实也不标准) 第三个是处理字符串的一个库 第四个是单总线的库 https://arduino-esp8266.readthedocs.io/en/latest/filesystem.html 注意:要在code中使用任何文件系统功能,请在草图中添加以下内容: //#include "FS.h" // SPIFFS is declared #include "LittleFS.h" // LittleFS is declared SPIFFS是原始文件系统,非常适合受空间和RAM限制的应用程序,这些应用程序利用许多小文件并关心静态和动态损耗平衡,并且不需要真正的目录支持。闪存上的文件系统开销也最小。 一个是lib库 一个是shell的包装库 一个是控制库 一个是游戏手柄控制的库 值得一提的是,这个文件就是所谓的原厂固件 shell的头文件 这里打开ESP32的Aduino实现 直接找头文件,可以看到很密集 顺藤摸瓜 开头两句,简单的编译条件语句 大致是把头文件分成三部分 看第二部分,freertos系统的任务头 也有hal的硬件抽象头 这个8266值得玩味 还有芯片GPIO的寄存器库 第三部分,不太懂。不研究了 宏定义 https://www.rdocumentation.org/packages/spacey/versions/0.1.1/topics/rad_to_deg 中断模式 下面还有,我就看到这里。这篇文章并不是给Arduino.h这个库解读的 这里打开的时候是注释状态,所以这里是个调试开关 https://www.cnblogs.com/youngforever/articles/3169629.html __FILE__,__LINE__ 都是与定义的宏,使用_和 __开始的函数一般都是专用的函数,一般都是于特定系统相关的,如果要想有更好的移植性,应该避免使用。 一般只有已经广泛使用的系统库函数和宏才有资格使用_甚至__打头,为的是不与用户定义的名字冲突,所以B.Stroustup在《The C++ Programming Language》中告诫我们一般不要使用_或__ 打头的标志符,这也是一个编程风格的问题吧。 一个是用uart0当做调试串口 一个是打日志用的 防止一个头文件被重复包含
如果uart0没有被定义,那么就定义为串(0)为普通串口 否则就定义串口1为调试的串口 双击的间隔时间是 500 https://www.dji.com/cn/robomaster-tt/downloads 这里我打开一个tof的demo serial串口配置 serial串口 serial串口 serial串口 这里搜索一下Serial1 Serial 我这里尝试编译一下,这个地方报错了.说没有这个库 我注释掉继续可以编译 编译成功 大概1000多行程序....占了77%的空间 这个是编译过程的一点警告,我有空改了合并到库 |
|