问题标签 [esp-idf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
582 浏览

aws-iot - 如何解决 esp32 的 aws 连接错误

将 ESP32 与 AWS IOT 连接时出现以下错误:-(以下附有错误)我浏览了许多链接,但无法解决问题。我已经生成了有效的证书,这些证书是:-

aws-root-ca.pem

证书.pem.crt

私人.pem.key

0 投票
1 回答
791 浏览

bluetooth - 是否有在 ble 中获取连接的远程设备名称的选项?

我使用 esp-idf v3.0 和 esp32 芯片。

我的 esp32 是一个 gatt 服务器,我与一个特定的 android 应用程序进行通信,它是 gatt 客户端。在我们的系统中,我需要为以前断开的远程设备保存一些信息以供将来连接。出于这个原因,我需要一些远程设备的 ID,为此我使用了 android bd 地址,但经过实验和谷歌的一些信息后,我了解到来自 android 的 bd 地址是不稳定的,因为它没有显示实际的物理地址地址。因此,我想使用 android 设备的名称作为 ID(当然我们会确保将我们的 android 机器设置为具有唯一名称)。但我在文档中找不到任何读取远程设备名称的选项。

我想知道是否有任何功能或示例代码可以读取连接的设备名称。

0 投票
2 回答
1251 浏览

freertos - 什么是最少延迟“收益”的电话?

乐鑫 esp-idf 中的入门示例是 hello-world 和 blink。Hello-world 输出打印然后调用esp_restart();- 所以它在它自己的特殊无限循环中。

blink 示例(删除了注释)有这个 app_main,它也是一个无限循环:

我将闪烁示例复制到我的 ~/esp 文件夹中,没有运行 makeconfig(所以只使用默认值),构建、刷新和监视它,它可以工作 - 监视器只显示“关闭 LED”和“打开引领'。没有提到看门狗定时器。

我编写了自己的最简单的应用程序,没有调用 vTaskDelay():

这会导致串行监视器定期显示以下输出:

我明白为什么——我需要回调操作系统,让它做它需要做的事情。我已经通过yield其他系统中的声明做到了这一点。

我只想使用一个核心,并试图避免使用 xTaskCreate 以使我的代码易于理解。

如果我不想延迟(就像眨眼示例所做的那样),将控制权从 app_main 传递回 FreeRTOS 以便它尽快返回的最有效方法是什么?

0 投票
2 回答
247 浏览

makefile - 使用 esp-iot-solution 存储库时,esp-idf 路径不会覆盖

我已经克隆了esp-idf-solution存储库并按照 readme.md 文件中的说明进行操作。

我之前已经克隆了 esp-idf 存储库,并且可以成功编译和刷写。但是当我尝试在 esp-iot-solution 中编译新示例时,它不起作用。

我在 readme.md 中遵循了这一步export IOT_SOLUTION_PATH=~/esp/esp-iot-solution。这不会覆盖 IDF_PATH。如何解决这个问题?

0 投票
1 回答
1771 浏览

serial-port - 如何更改 ESP-IDF 中的标准输出波特率?

我在 PlatformIO 上为带有 ESP-IDF 框架的 ESP32 编写了一个小程序。

目前,这是通过 USB 电缆连接到我的 PC 的。我从 CAN-BUS 接收到大量数据,并使用 printf() 打印这些数据

标准波特率 115200 的输出似乎太慢了。这就是为什么我想将其设置为更高的值。

我在 platformio.ini 中更改了这个但没有成功。

我搜索并没有找到可以更改此波特率的位置。

如果可能的话,我的想法是添加一些代码,可能只是一两行,将值设置为 230400

我提到了 ESP32、PlatformIO 和 ESP-IDF,因为我不确定这个设置应该在哪里。

0 投票
1 回答
470 浏览

toolchain - 安装 PlatformIO 后如何安装 ESP-IDF?

我安装了 PlatformIO 来为 ESP32 开发程序。PlatformIO 会自动安装“一切”来创建 ESP-IDF 项目。

部分可行,但有些东西,如 menuconfig,在 PlatformIO 中不起作用。

我还在这里读到了一些代码不能在 PlatformIO 中编译,但可以使用 Espressif 开发工具编译。

https://docs.espressif.com/projects/esp-idf/en/latest/get-started/

我希望能够安装 Espressif 工具,但我担心当我这样做时,我的 PlatformIO 安装中的某些部分可能会被覆盖,可能使用不同的版本,然后我可能会遇到比我解决的问题更多的问题。

是否有明确的说明如何与 PlatformIO 同时安装 ESP-IDF 并确保它们不会相互产生问题?

0 投票
1 回答
296 浏览

c - esp32用c而不是python闪烁

我想将flash我的二进制文件转换为 esp32。有没有一种简单的方法来生成flash二进制文件,而不使用该esptool.py工具?esptool.py我是移植自己的唯一选择吗?

0 投票
1 回答
1050 浏览

c - 我们可以减小 ESP IDF 锅炉板尺寸吗?

我在使用 duinotech XC-3800 的 ESP32 芯片上使用 ESP IDF 测试了运行裸机代码,并在图像大小方面获得了以下结果。

分析 ESP32 的二进制大小

文件夹结构

  • 温度/
    • 主要的/
      • CMakeLists.txt
      • 主程序
    • CMakeLists.txt

文件内容

CMakeLists.txt

主>CMakeLists.txt

测试 1 main>main.c

测试 2 main>main.c

测试 3 main>main.c

尺寸比较

通过运行获得idf_size.py build/temp.map

测试 1

测试 2

测试 3

分析

运行得到的代码大小stat --format="%s" main/main.c

所有大小都以字节为单位

至少 145KB 的样板代码只是为了获得一个空的主运行。

猜测

我怀疑 145KB 是由许多库组成的,无论您是否使用它们,这些库总是加载到芯片上。其中一些必须是FreeRTOS,WiFiHTTP

我们能否以某种方式降低这个尺寸并仅加载操作所需的最低限度?

0 投票
1 回答
1909 浏览

bluetooth-lowenergy - esp-idf BLE 扫描

我正在使用 ESP-idf 对我的 ESP32 板进行编程。我的目标是让它扫描特定的 BLE(低功耗蓝牙)设备。我想出了如何通过使用“Espressif”提供的名为“ibeacon_demo.c”的示例之一进行扫描,事情是我不知道如何提取任何搜索到的设备的地址并将其作为字符串所以我可以将它与我的 BLE 设备地址进行比较。

ibeacon_demo.c: https ://github.com/pycom/pycom-esp-idf/blob/master/examples/bluetooth/ble_ibeacon/main/ibeacon_demo.c

我很确定在此声明中必须做一些事情:

这是我使用“ibeacon_demo.c”的示例的 API 参考 [ https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/bluetooth/esp_gap_ble.html#_CPPv428esp_ble_gap_update_whitelistb13esp_bd_addr_t22esp_ble_wl_addr_type_t][1 ]

0 投票
1 回答
222 浏览

c - 使用内联汇编的 C 数组声明

我最近遇到了这个片段:

esp-idf 示例中(第 74 行)。我看不懂声明,我的网上搜索也没有成功。我最好的猜测是这段代码:

  • 用作uint8_t替代品,char因为它们具有相同的大小(1 个字节)。不知道为什么

  • 最终通过在我们的模块之外指定长度的字符串长度推断数组大小来声明一个字符串(const char数组)

即使我的假设是正确的,我也无法理解为什么要这样写,或者在这种情况下“空终止”会发生什么。所以实际的问题:

  • 这段代码在做什么?
  • 为什么这样做(优点)?
  • 是否有任何含义可以将其与简单的 C 风格声明区分开来?