问题调查:偶然在看DHCP发现了
问题1:
我的dead其实是没有必要的 内部最后一个参数W5500不会干扰 可以作为我自己的开关 !
#define dead 0 //1-写死的 和之前效果一样 0-会自动切换[人为让IP和PC的IP冲突]
//初始化配置定义
#if dead
wiz_NetInfo gWIZNETINFO = { .mac = {0x78, 0x83, 0x68, 0x88, 0x56, 0x38},
.ip = {192, 168, 0,17},
.sn = {255,255,255,0},
.gw = {192, 168,0,2},
.dns = {180,76,76,76},
.dhcp = NETINFO_STATIC};
#else
wiz_NetInfo gWIZNETINFO = { .mac = {0x00, 0x08, 0xDC, 0x15, 0xF3, 0x26},
.ip = {192, 168, 0,2},
.sn = {255,255,255,0},
.gw = {192, 168,0,3},
.dns = {180,76,76,76},
.dhcp = NETINFO_DHCP};
问题2:
函数w5500_dhcp能看到 其实DHCP_run之前需要做DHCP_init(DHCP_SN, gDATABUF);
看顶部
#define DHCP_SN 7
#define DNS_SN 6
也就是7给了DHCP
void DHCP_init(uint8_t s, uint8_t * buf)
{
XXX看到在函数内7给了它
DHCP_SOCKET = s; // SOCK_DHCP
}
所以代码里面有了2种风格的宏定义 也有了2中策略 一种是,H直接写死【野火】!一种是init函数分配一个写死的【git官方】!
在interface。h我写的
/*Socket 端口选择,可按自己的习惯定义*/
#define SOCK_TCPS 0
#define SOCK_HUMTEM 0
#define SOCK_PING 0
#define SOCK_TCPC 1
#define SOCK_UDPS 2
#define SOCK_WEIBO 2
#define SOCK_DHCP 3
#define SOCK_HTTPS 4
#define SOCK_DNS 5
#define SOCK_SMTP 6
#define SOCK_NTP 7
有问题吗?试试你看
6号!
它.H定义给了 SOCK_SMTP 然后在.C定义给了DNS!
我修改一下.H修改为7试试!!
发现问题依旧 1只能自己给自己发邮件 2每次都是2个就中断了
但是速度快了很多很多!!!