//UDP测试
void udp_demo_test1(void)
{
err_t err;
//struct udp_pcb *udppcb; //定义一个TCP服务器控制块
struct ip_addr rmtipaddr; //远端ip地址
u8 *tbuf;
u8 key;
u8 res=0;
u8 t=0;
udp_demo_set_remoteip();//先选择IP
tbuf=mymalloc(SRAMIN,200); //申请内存
if(tbuf==NULL)return ; //内存申请失败了,直接退出
udppcb=udp_new();
if(udppcb)//创建成功
{
IP4_ADDR(&rmtipaddr,lwipdev.remoteip[0],lwipdev.remoteip[1],lwipdev.remoteip[2],lwipdev.remoteip[3]);
//err=udp_connect(udppcb,&rmtipaddr,UDP_DEMO_PORT);//UDP客户端连接到指定IP地址和端口号的服务器
//err=udp_connect(udppcb,IP_ADDR_ANY,UDP_DEMO_PORT);//UDP客户端连接到指定IP地址和端口号的服务器
err=udp_connect(udppcb,IP_ADDR_BROADCAST,UDP_DEMO_PORT);//UDP客户端连接到指定IP地址和端口号的服务器
if(err==ERR_OK)
{
err=udp_bind(udppcb,IP_ADDR_ANY,UDP_DEMO_PORT);//绑定本地IP地址与端口号
//err=udp_bind(udppcb,IP_ADDR_BROADCAST,UDP_DEMO_PORT);//绑定本地IP地址与端口号
if(err==ERR_OK) //绑定完成
{
udp_recv(udppcb,udp_demo_recv,NULL);//注册接收回调函数
}else res=1;
}else res=1;
}else res=1;
}
我把程序改成这样,电脑能收到单片机的数据,单片机收不到电脑发的数据。 |