嵌入式问题解决手册

11 篇文章 1 订阅
2 篇文章 0 订阅

问题
使用esp32-s3-wroom 遇到了下面的问题

Info : only one transport option; autoselect 'jtag'
Info : esp_usb_jtag: VID set to 0x303a and PID to 0x4001
Info : esp_usb_jtag: capabilities descriptor set to 0x2000
Warn : Transport "jtag" was already selected
Warn : Interface already configured, ignoring
Info : esp_usb_jtag: VID set to 0x303a and PID to 0x1001
Info : esp_usb_jtag: capabilities descriptor set to 0x2000
adapter speed: 40000 kHz

Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Error: libusb_open() failed with LIBUSB_ERROR_NOT_SUPPORTED
Info : esp_usb_jtag: serial (123456)
Error: esp_usb_jtag: error finding/claiming JTAG interface on device!

使用usb工具查看该usb的号是 4001, 303a
原因, 这个口可能被设定为了usb的otg的口了,具体的说明和解决方案如下
方法:

You likely have firmware in the S3 that uses the USB-OTG peripheral and you're seeing that rather than the USB-serial-JTAG. Suggest you turn on the S3 in download mode, i.e. hold 'boot', press and release 'reset' and release 'boot' and try again; you should be seeing the USB-serial-JTAG then. (Obviously, you also need to change your openocd config back.)

参考网址:

https://esp32.com/viewtopic.php?t=33623

问题
esp32 idf 的vscode的开发过程中, 发现有些定义编译能够通过的, 编写的时候有些定义显示为红色,显示为了undefined, 语法没有被自动的关联上, 现象如下图
在这里插入图片描述
并且设定的一些宏,在vscode 中显示的也不对,不太方便进行代码的开发和调试

方法
cmake的编译选项里面已经添加了
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
所以默认的定义在build 下面就会产生这个compile_commands.json 文件, 这个定义添加到.vscode/c_cpp_properties.json里面既可以

{
    "configurations": [
        {
            "name": "ESP-IDF",
            "compileCommands": "${workspaceFolder}/build/compile_commands.json",
            // other properties...
        }
    ],
    "version": 4
}

问题
ESP32用smart_config自动配网后收不到IP_EVENT_STA_GOT_IP和SC_EVENT_SEND_ACK_DONE

方法
wifi初始化顺序是

void wifi_init(void){
    ESP_ERROR_CHECK(esp_netif_init());  // 初始化tcp/ip协议栈
    ESP_ERROR_CHECK(esp_event_loop_create_default());   // 创建一个默认得事件循环
    esp_netif_t *sta_netif = esp_netif_create_default_wifi_sta(); // 创建一个默认得station esp_netif_destroy 这个调用必须在上个后面。。。。不然不能获取ip IP_EVENT_STA_GOT_IP
    assert(sta_netif);
    s_wifi_event_group = xEventGroupCreate();   // 创建一个事件组句柄 / vEventGroupDelete
    ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL)); // esp_event_handler_unregister 但是应该没有必要unregister把。
    ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &event_handler, NULL));
    ESP_ERROR_CHECK(esp_event_handler_register(SC_EVENT, ESP_EVENT_ANY_ID, &event_handler, NULL));
    wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
    ESP_ERROR_CHECK(esp_wifi_init(&cfg)); // esp_wifi_deinit    
    ESP_ERROR_CHECK(esp_smartconfig_set_type(SC_TYPE_ESPTOUCH));
}

esp_netif_create_default_wifi_sta() 必须放在esp_event_loop_create_default()后面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zeloas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值