|
本帖最后由 我是一个大白菜 于 2022-3-19 13:39 编辑
最近有个项目需要用到有线网络和485,于是想到论坛大神做了一个板子,我参考他的帖子,自己做了一个。
硬件调通后,iperf测速大概92Mbits/s,基本满足需求,内存大,udp通信够用了。
我使用的是esp-idf 4.3 配合vscode开发,安装的是esp-idf离线版,需要运气有时候安装一次就好,我换个电脑,一样的软件包安装会失败,多试几次了。
在vscode里,按f1,顶部会弹出一个对话框,选择 ESP-IDF: Show Example Projects ,在弹出的页面里,选择 ethernet->basic ,打开介绍界面,在顶部有个蓝色提示文字 Create project using example basic点击它,选择一个自己知道的文件夹,相当于复制一份这个工程。接下去都在自己的这个文件夹里修改了。
网上查找了很多资料,自己试验了他们的方法,没有成功,最后自己发现是有个结构体名称自己疏忽了,修改一下就好了。整个工程主要就一个c文件,只要配置好了开发环境,编译一下就可以验证了。
修改的关键是:
1. 先关闭工程自带的dhcpc ;
2. 设置静态ip,需要调用esp32自带的函数 esp_ip4addr_aton来做字符串ip和uint32_t 的转换;
3. 配置上面两步,要在函数 esp_eth_start(eth_handle) 之前。
- ESP_LOGI(TAG, "dhcpc_stop 1");
- ESP_ERROR_CHECK(esp_netif_dhcpc_stop(eth_netif));
- ESP_LOGI(TAG, "dhcpc_stop 2");
- esp_netif_ip_info_t info_t;
- memset(&info_t, 0, sizeof(esp_netif_ip_info_t));
- info_t.ip.addr = esp_ip4addr_aton((const char *)"192.168.1.50");
- info_t.netmask.addr = esp_ip4addr_aton((const char *)"255.255.255.0");
- info_t.gw.addr = esp_ip4addr_aton((const char *)"192.168.1.1");
- ESP_LOGI(TAG, "static ip 1");
- ESP_ERROR_CHECK( esp_netif_set_ip_info(eth_netif, &info_t));
- ESP_LOGI(TAG, "static ip 2");
-
- /* start Ethernet driver state machine */
- ESP_ERROR_CHECK(esp_eth_start(eth_handle));
复制代码
大神的链接
https://www.amobbs.com/forum.php ... amp;highlight=ESP32
找到的修改方法链接
https://espressif-docs.readthedo ... ework/ethernet.html |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|