搜索
bottom↓
回复: 10

esp32使用esp-idf4.3 有线网络 设置静态ip

[复制链接]

出0入42汤圆

发表于 2022-3-19 12:51:54 | 显示全部楼层 |阅读模式
本帖最后由 我是一个大白菜 于 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) 之前。

  1.     ESP_LOGI(TAG, "dhcpc_stop 1");
  2.         ESP_ERROR_CHECK(esp_netif_dhcpc_stop(eth_netif));
  3.     ESP_LOGI(TAG, "dhcpc_stop 2");

  4.     esp_netif_ip_info_t info_t;
  5.     memset(&info_t, 0, sizeof(esp_netif_ip_info_t));
  6.     info_t.ip.addr = esp_ip4addr_aton((const char *)"192.168.1.50");
  7.     info_t.netmask.addr = esp_ip4addr_aton((const char *)"255.255.255.0");
  8.     info_t.gw.addr = esp_ip4addr_aton((const char *)"192.168.1.1");
  9.     ESP_LOGI(TAG, "static ip 1");
  10.     ESP_ERROR_CHECK( esp_netif_set_ip_info(eth_netif, &info_t));
  11.     ESP_LOGI(TAG, "static ip 2");
  12.    
  13.     /* start Ethernet driver state machine */
  14.     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周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2022-3-19 16:28:47 | 显示全部楼层
666,好多人玩esp32,我也在玩

出0入42汤圆

 楼主| 发表于 2022-3-19 17:42:06 | 显示全部楼层
duxingkei 发表于 2022-3-19 16:28
666,好多人玩esp32,我也在玩
(引用自2楼)

恩,现在stm这么贵,esp32这个时候就体现出非常高的性价比了,内存大,flash是4M的,支持wifi和有线网络,除了开发不习惯,gpio少,没啥缺点了

出0入89汤圆

发表于 2022-3-20 00:37:21 来自手机 | 显示全部楼层
也正打算用这个做个板子,我打算用micropython来写,到时候有问题在请教你啊

出0入228汤圆

发表于 2022-3-20 02:25:52 来自手机 | 显示全部楼层
用arduino写,我是另加了个用ble来做网络配置

出0入89汤圆

发表于 2022-3-20 08:40:26 来自手机 | 显示全部楼层
wxws 发表于 2022-3-20 02:25
用arduino写,我是另加了个用ble来做网络配置
(引用自5楼)

这个模块好像自带蓝牙吧?

出100入312汤圆

发表于 2022-3-20 08:46:58 | 显示全部楼层
youkebing 发表于 2022-3-20 08:40
这个模块好像自带蓝牙吧?
(引用自6楼)

自带蓝牙,可能不能同时使用

出0入42汤圆

 楼主| 发表于 2022-3-20 09:19:17 来自手机 | 显示全部楼层
youkebing 发表于 2022-3-20 00:37
也正打算用这个做个板子,我打算用micropython来写,到时候有问题在请教你啊 ...
(引用自4楼)

我也是刚开始用,相互学习

出0入0汤圆

发表于 2022-3-20 10:13:33 | 显示全部楼层
只用以太网吗,有没有和wifi一起用

出0入42汤圆

 楼主| 发表于 2022-3-20 14:37:09 | 显示全部楼层
xmlbb 发表于 2022-3-20 10:13
只用以太网吗,有没有和wifi一起用
(引用自9楼)

我列举的获取官方例子里,好像有网络转wifi的工程,可以看看参考一下

出0入228汤圆

发表于 2022-3-20 18:27:12 | 显示全部楼层
akey3000 发表于 2022-3-20 08:46
自带蓝牙,可能不能同时使用
(引用自7楼)

蓝牙+wifi   同时使用 正常
蓝牙+以太网  同时使用  正常

wifi+以太网  没搞过。等于是个网关了。不过应该是可行的。

我这应用是2选1,wifi或以太网。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 12:51

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表