ESP32C3, esp-idf 4.3.5,编译报错。FAILED: wifi_softAP.elf cmd.exe /C "cd . && D:\Espressif\tools\riscv32-esp-elf\esp-2021r2-patch3-8.4.0\riscv32-esp-elf\bin\riscv32-esp-elf-g++.exe -march=rv32imc -nostartfiles -march=rv32imc --specs=nosys.specs @CMakeFiles\wifi_softAP.elf.rsp -o wifi_softAP.elf && cd ." d:/espressif/tools/riscv32-esp-elf/esp-2021r2-patch3-8.4.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld.exe: esp-idf/main/libmain.a(softap_example_main.c.obj): in function `ch623_task': d:\espressif\frameworks\esp-idf-v4.3.5\examples\wifi\esp32_config_wifi\build/../main/softap_example_main.c:164: undefined reference to `CH623_Init' d:/espressif/tools/riscv32-esp-elf/esp-2021r2-patch3-8.4.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld.exe: d:\espressif\frameworks\esp-idf-v4.3.5\examples\wifi\esp32_config_wifi\build/../main/softap_example_main.c:166: undefined reference to `pcd_lpcd_start' d:/espressif/tools/riscv32-esp-elf/esp-2021r2-patch3-8.4.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld.exe: d:\espressif\frameworks\esp-idf-v4.3.5\examples\wifi\esp32_config_wifi\build/../main/softap_example_main.c:168: undefined reference to `pcd_lpcd_application' d:/espressif/tools/riscv32-esp-elf/esp-2021r2-patch3-8.4.0/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld.exe: d:\espressif\frameworks\esp-idf-v4.3.5\examples\wifi\esp32_config_wifi\build/../main/softap_example_main.c:171: undefined reference to `pcd_lpcd_start' collect2.exe: error: ld returned 1 exit status ninja: build stopped: subcommand failed. ninja failed with exit code 1
时间: 2023-07-19 20:16:31 浏览: 55
根据报错信息,这是因为链接器无法找到函数 CH623_Init、pcd_lpcd_start 和 pcd_lpcd_application 的定义,导致链接失败。请确认是否正确引入了相关的头文件和库文件,并且这些函数是否在库文件中被定义了。如果确保没有问题,请检查是否在 CMakeLists.txt 中正确地添加了这些库的引用,以及是否将这些库添加到了链接器的链接列表中。
相关问题
ESP32C3, esp-idf 4.3.5,延时5微秒
您想了解关于ESP32C3和esp-idf 4.3.5延时5微秒的问题吗?如果是这样,我可以告诉您,ESP32C3是一款高度集成的Wi-Fi和蓝牙LE SoC,而esp-idf是Espressif IoT开发框架的官方开发套件。在esp-idf 4.3.5版本中,可以使用esp_timer_delay_us()函数来实现延时,该函数的参数是以微秒为单位的延时时间。因此,如果您想要实现5微秒的延时,可以使用以下代码:
```
esp_timer_handle_t delay_timer;
esp_timer_create_args_t delay_timer_args = {
.callback = NULL,
.name = "delay_timer"
};
esp_timer_create(&delay_timer_args, &delay_timer);
esp_timer_start_once(delay_timer, 5);
```
这将创建一个名为“delay_timer”的定时器,并在5微秒后触发一次。请注意,实际延时时间可能会略有偏差,取决于系统时钟频率和其他因素。
esp-idf 4.3.5,ESP32C3,定时器延时1微秒
在 ESP-IDF 4.3.5 中,可以使用 `esp_timer_get_time()` 函数获取系统时间,单位是微秒。要实现微秒级的延时,你可以在获取当前时间后,再加上指定的微秒数,得到所需的目标时间。然后,可以使用一个循环,检查当前时间是否达到目标时间,如果还未到达,则继续循环等待。
以下是一个简单的示例代码,可以实现一微秒的延时:
```c
#include "esp_timer.h"
void delay_us(uint32_t us)
{
uint64_t now = esp_timer_get_time(); // 获取当前时间
uint64_t target = now + us; // 计算目标时间
while (esp_timer_get_time() < target) // 检查是否到达目标时间
{
// 等待
}
}
```
你可以调用 `delay_us(1)` 函数来实现一微秒的延时。请注意,这种方法的精度可能会受到循环体执行时间的影响,因此不一定能够保证精确的微秒级延时。
相关推荐














