学习ESP32笔记

学习ESP32笔记(VSCode下面基于Arduino开发)

1.platform IO插件的下载(提前安装好python,要下载3.5以上的Python,不然在中间的一部分会一直报错)

VS Code下载platform IO时,开加速器(VPN),并且关闭防火墙

这一步比较慢,大概等十来分钟。

学习ESP32笔记_第1张图片

下面这个就是下载成功。

学习ESP32笔记_第2张图片

2.创建ESP32Demo

学习ESP32笔记_第3张图片

关闭防火墙,用手机热点给电脑连接,打开VPN(在早上创建成功的,早上是玄学),或者也可以不用VPN?

3.代码的编译和下载

编译

学习ESP32笔记_第4张图片

下载

学习ESP32笔记_第5张图片

那个端口它是自动选择的,不用你自己去选

学习ESP32笔记_第6张图片

串口的选择也可以自己选

学习ESP32笔记_第7张图片

可以看到开发板上面的灯会闪烁

学习ESP32笔记_第8张图片

4.快捷键的设置

学习ESP32笔记_第9张图片

5.添加别人写的代码工程

学习ESP32笔记_第10张图片

添加完成之后,然后打开(多刷新几遍,就是多点Projects下面的那几个选项)

学习ESP32笔记_第11张图片

在这边就能看到你所添加的工程文件

学习ESP32笔记_第12张图片

在这边选择你要编译的工程

学习ESP32笔记_第13张图片

在文件中修改的代码,最终都会修改到这个工程指向的路径的文件

学习ESP32笔记_第14张图片

没有工作区间了,就在这打开以前打开的文件

学习ESP32笔记_第15张图片

6.其余库的安装

学习ESP32笔记_第16张图片

库的删除

学习ESP32笔记_第17张图片

学习ESP32笔记_第18张图片

然后在platformio.ini中删除你刚删除库在lib_deps中对应的名字,这样就能完全删除库了

学习ESP32笔记_第19张图片

示例的阅读,和将这个库加入到你选择的工程里面(和Arduino IDE差不多)

学习ESP32笔记_第20张图片

7.ESP32关于PlatformIO的配置信息

看哔站的ESP32的BLE_哔哩哔哩_bilibiliP8

8.ESP32与FreeRTOS

FreeRTOS - ESP32 - — ESP-IDF 编程指南 v4.3 文档 (espressif.com)

9.ESP32外围电路设计(具体在乐鑫官网查看)

学习ESP32笔记_第21张图片
然后根据需求选择,我这选择模组
学习ESP32笔记_第22张图片
学习ESP32笔记_第23张图片
点进去就能看到他的规格书了

学习ESP32笔记_第24张图片
在往下拉,就能看到他的原理图了
学习ESP32笔记_第25张图片

10.ESP32代码示例(具体在乐鑫官网查看)

乐鑫科技

代码示例-github

学习ESP32笔记_第26张图片


学习ESP32笔记_第27张图片

11.API参考

太极创客Arduino编程语句参考
ESP8266-Arduino库 开发参考资料

因为是在VSCode下面基于Arduino开发,所以一些函数可以用ESP8266的来开发

ESP32教程一:arduino环境搭建(这里面有怎么下载ESP32arduino例程的教程)

ESP32-arduino-GitHub
学习ESP32笔记_第28张图片

ESP32使用Arduino环境,安装、编译、下载、安装库

12.ESP32之FreeRTOS使用

发现不用移植FreeRTOS,就可以用创建任务函数,可能VScode中自带了?

ESP32-Arduino中的FreeRTOS使用
在platformio中不需要引入FreeRTOS的头文件,直接可用

------------------------------分割线----------------------------------------------

当你用platformio创建第一个项目的时候,就已经帮你下载好了freertos,不用你再去移植了

学习ESP32笔记_第29张图片
学习ESP32笔记_第30张图片
学习ESP32笔记_第31张图片
学习ESP32笔记_第32张图片

**只要包含了这个头文件:#include 就可以去使用FreeRTOS了 **

学习ESP32笔记_第33张图片

代码如下:

/*
//  多线程基于FreeRTOS,可以多个任务并行处理;
//  ESP32具有两个32位Tensilica Xtensa LX6微处理器;
//  实际上我们用Arduino进行编程时只使用到了第一个核(大核),第0核并没有使用
//  多线程可以指定在那个核运行;
 */

#include 
#define USE_MULTCORE 0

void xTaskOne(void *xTask1)
{
    while (1)
    {
        Serial.printf("Task1 \r\n");
        delay(500);
    }
}

void xTaskTwo(void *xTask2)
{
    while (1)
    {
        Serial.printf("Task2 \r\n");
        delay(1000);
    }
}

void setup()
{
    Serial.begin(115200);
    delay(10);

}

void loop()
{

#if !USE_MULTCORE

    xTaskCreate(
        xTaskOne,  /* Task function. */
        "TaskOne", /* String with name of task. */
        4096,      /* Stack size in bytes. */
        NULL,      /* Parameter passed as input of the task */
        1,         /* Priority of the task.(configMAX_PRIORITIES - 1 being the highest, and 0 being the lowest.) */
        NULL);     /* Task handle. */

    xTaskCreate(
        xTaskTwo,  /* Task function. */
        "TaskTwo", /* String with name of task. */
        4096,      /* Stack size in bytes. */
        NULL,      /* Parameter passed as input of the task */
        2,         /* Priority of the task.(configMAX_PRIORITIES - 1 being the highest, and 0 being the lowest.) */
        NULL);     /* Task handle. */

#else

    //最后一个参数至关重要,决定这个任务创建在哪个核上.PRO_CPU 为 0, APP_CPU 为 1,或者 tskNO_AFFINITY 允许任务在两者上运行.
    xTaskCreatePinnedToCore(xTaskOne, "TaskOne", 4096, NULL, 1, NULL, 0);
    xTaskCreatePinnedToCore(xTaskTwo, "TaskTwo", 4096, NULL, 2, NULL, 1);

#endif

    while (1)
    {
        Serial.printf("XTask is running\r\n");
        delay(1000);
    }
}

学习ESP32笔记_第34张图片

学习ESP32笔记_第35张图片

ESP32-Arduino中的FreeRTOS使用

你可能感兴趣的:(ESP32,学习,笔记)