ESP-IDF使用记录

ESP-IDF使用记录

1. 工程

1.1 工程编译和修改

  • 一定记得,工程只能每次做一次小改,改完编译通过了才能进行下一步操作,一次修改太多,必报错,因为工程中存在各种校验
  • 比如:修改使用的芯片,一定要将当前的工程编译通过后,然后修改到想要的初步状态,编译通过,再换芯片,再次编译

1.2 工程添加文件

1.3 工程添加现有组件

idf.py add-dependency "espressif/led_strip^3.0.0"
  • 添加完组件,会在main目录下的idf_componet.yml文件中看到,不需要的组件可以注释掉

在这里插入图片描述

  • 注意:如果工程中,一个组件都没有,要把idf_componet.yml文件删掉,留下个空的文件会编译不通过

2. 代码

2.1 整体使用

  • 整个代码是跑在FreeRTOS上的,自己加的代码,就相当于RTOS里面的一个默认的任务,实际写代码完全可以和写裸机代码一样的写,反而是多了很多现成的接口可以用,反而更简单
  • 延时使用vTaskDelay(1000 / portTICK_PERIOD_MS);,系统自动处理延时,而不是加死等
  • 由于ESP-IDF的接口都封装了很多层,实际运行起来,并没有使用裸机的程序直接操作IO口的响应速度快,实际体验就是,不用DMA,直接挨个发送数据刷屏,并不会比stm32用同样方式块
  • 需要速度快的地方都得用DMA,代码处理慢主要是API把很多硬件操作包了太多层,看着一行代码,实际执行,十条指令打不住,甚至上百

2.2 代码里面的工具

  • 错误返回的结构ESP_RETURN_ON_ERROR
    返回如果出错,就直接return退出并报错
/**
 * Macro which can be used to check the error code. If the code is not ESP_OK, it prints the message and returns.
 */
#define ESP_RETURN_ON_ERROR(x, log_tag, format, ...) do {                                                  \
        esp_err_t err_rc_ = (x);                                                                           \
        if (unlikely(err_rc_ != ESP_OK)) {                                                                 \
            ESP_LOGE(log_tag, "%s(%d): " format, __FUNCTION__, __LINE__ __VA_OPT__(,) __VA_ARGS__);        \
            return err_rc_;                                                                                \
        }                                                                                                  \
    } while(0)

使用

    ESP_RETURN_ON_ERROR(i2c_read_bytes(tp, POINT_BUFFER_INDEX, pointdata, 14), TAG, "I2C read failed");

3. VSCODE+ESPIDF的使用

3.1 ESP-IDF暂停打印

  • 打印如果不停下来,就一直滚动个不停,很难看到

  • 使用CTRL+]快捷键,可以关闭打印,然后就能停下来看打印
    在这里插入图片描述

  • 方向键向上,然后回车,就能重新打开打印,芯片复位后重新跑起来
    在这里插入图片描述

  • 这样操作还能复位然后重新运行芯片

  • 总结:两个功能,停止打印和软件重新运行

3.2 ESP-IDF无法找到定义

  • 打开工程后,头文件下面都有个波浪线,表示编辑器找不到文件
    在这里插入图片描述

  • 库函数都找不到定义
    在这里插入图片描述

  • 解决方案:查看----命令面板----ESP-IDF:Add VS Code Configuration Folder
    在这里插入图片描述

  • 等编辑器的代码分析跑一会,就好了
    在这里插入图片描述

  • 如果点了查看定义之后,就只有一个进度条在跑,半天不跳转,可以直接关闭串口,重新打开工程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值