【ESP32】-【tcp client】

2020-06-10
整了2天,将ESP32配置为client,电脑设置为sever。但是始终连不上电脑的sever
百度搜了一下,说电脑win10要关闭防火墙,我把我电脑的防火墙关了,还是不行。最后在手机和ipad上都装了网络调试助手。手机设置为sever,ipad设置为client。ipad能连上手机sever,说明两者通讯是正常的。然后修改了esp32的ip地址,端口,烧写,能连上手机sever。

在看串口打印过程中,发现很规律的出现看门狗的报错:
Task watchdog got triggered. The following tasks did not reset the watchdog
百度搜了一下,说要在任务的最后加延时。我在主函数main_app()中while(1)里面加了vTaskDelay(5 / portTICK_PERIOD_MS);用做延时5ms,重新编译 下载程序之后仍然没解决。继续看网上的资料,对比了之前用官方idf里面的例程,确实没有出现过这个警告。参考官方的例程,我为自己的ui程序创建了一个任务,在任务函数while(1)中vTaskDelay(10 / portTICK_PERIOD_MS);加了句延时。修改之后,看门狗的报错确实没有了。

2020-06-15
在电脑上,打开网络调试助手,设置为tcp sever,配置ESP32为client,并连接tcp sever。获取到端口号之后,每隔1秒主动向sever发送测试数据。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ESP32-C3 上,你可以通过以下代码来设置 TCP 客户端在连接 WiFi 时的超时时间: ```c #include "esp_wifi.h" // 设置 WiFi 连接超时时间为 10 秒 #define WIFI_CONNECT_TIMEOUT_MS (10000) // 在连接 WiFi 时设置超时时间 esp_err_t wifi_connect(const char *ssid, const char *password) { esp_err_t ret = ESP_OK; wifi_config_t wifi_config = { 0 }; strncpy((char *)wifi_config.sta.ssid, ssid, sizeof(wifi_config.sta.ssid)); strncpy((char *)wifi_config.sta.password, password, sizeof(wifi_config.sta.password)); ret = esp_wifi_set_mode(WIFI_MODE_STA); if (ret != ESP_OK) { return ret; } ret = esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config); if (ret != ESP_OK) { return ret; } ret = esp_wifi_start(); if (ret != ESP_OK) { return ret; } uint32_t start_time = esp_timer_get_time(); wifi_ap_record_t ap_info = { 0 }; while (true) { ret = esp_wifi_sta_get_ap_info(&ap_info); if (ret == ESP_OK) { break; } uint32_t time_elapsed = (esp_timer_get_time() - start_time) / 1000; if (time_elapsed >= WIFI_CONNECT_TIMEOUT_MS) { ESP_LOGE(TAG, "WiFi connection timeout"); return ESP_ERR_TIMEOUT; } vTaskDelay(pdMS_TO_TICKS(100)); } ESP_LOGI(TAG, "Connected to WiFi AP %s", ap_info.ssid); return ESP_OK; } ``` 在这个代码中,`WIFI_CONNECT_TIMEOUT_MS` 宏定义了 WiFi 连接的超时时间。在 `wifi_connect()` 函数中,我们使用了 `esp_wifi_sta_get_ap_info()` 来获取连接的 WiFi AP 信息,如果在超时时间内没有获取到 AP 信息,则会返回超时错误。你可以根据需要来调整超时时间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值