发帖
4 0 0

#define LWIP_DHCP 由1改成0,编译时错误

mamba
高级会员

5

主题

11

回帖

535

积分

高级会员

积分
535
小安派&M61教程合集 95 4 昨天 10:02
本帖最后由 mamba 于 2025-6-26 10:26 编辑


AI-M61-32S
#define LWIP_DHCP    由1改成0,不用DHCP,编译时libdhcpd.a和libwifi6.a链接错误

有没有办法禁用DHCP,只用静态IP
──── 0人觉得很赞 ────

使用道具 举报

这部分也是封起来的,暂时没办法改
昨天 10:44
Ai-Thinker小泽 发表于 2025-6-26 10:41
这部分也是封起来的,暂时没办法改

那有没有其他办法只用静态IP连接WiFi
wifi_mgmr_sta_ip_set你搜一下这个接口有没有,bouffaloSDK/components/wireless/wifi6/include/wifi_mgmr_ext.h

是的,在Bouffalo SDK中有多种方式可以禁用DHCP并使用静态IP配置。

通过命令行接口禁用DHCP

SDK提供了 netifd_nano命令行工具来管理网络接口。 1 你可以使用以下命令停止DHCP客户端:

netifd_nano dhcp stop -i <interface_name>

通过API函数禁用DHCP

components/net/netbus/netifd_nano/netifd_nano.c

使用netifd_nano API

SDK提供了 netifd_dhcp_stop函数来停止指定接口的DHCP客户端: 2

int netifd_dhcp_stop(const char* ifname);

该函数的实现会调用lwIP的 netifapi_dhcp_stop来停止DHCP: 3

使用lwIP API直接控制

你也可以直接使用lwIP提供的DHCP控制函数: 4
components/net/lwip/lwip/src/include/lwip/netifapi.h

netifapi_dhcp_stop(netif);

设置静态IP

停止DHCP后,你需要手动配置静态IP地址。可以使用lwIP的 netifapi_netif_set_addr函数: 5

netifapi_netif_set_addr(netif, &ip_addr, &netmask, &gateway);

components/net/lwip/lwip/src/apps/dhcpd/dhcp_server_raw.c

            ip4addr_aton(DHCPD_SERVER_IP, &default_addr);
814            ip4addr_aton("255.255.255.0", &default_mask);
815            ip4addr_aton("0.0.0.0", &default_gw);
816            netifapi_netif_set_addr(netif, &default_addr, &default_mask, &default_gw);
817        }
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 29083 个
  • 话题数: 41888 篇