原子407板子的UDP测试,遇到些问题。求教

2019-07-21 00:43发布

买探索者的时候没买LCD,现在测UDP,那个目标地址怎么设置。
电脑的IP安装教程里面设置的是192.168.1.100,调试助手打开是下面这个,还有本地端口都是默认的。对UDP测试有影响么?
程序运行。调试助手显示发送成功,但是网络数据接收没有内容,是什么情况?
发现程序里面的LCD和按键部分基本对我现在的情况没用,该怎么测UDP.


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
dop101
2019-07-22 08:29

回复【10楼】 正点原子 :
---------------------------------
因为没有路由所以用的是静态IP,我用的完全是咱们程序里面的两个远端IP,192.168.1.100和静态IP192.168.1.30。开发板也是探索者的,所以开发板的IP应该 是192.168.1.30了,ping 192.168.1.30是ping不通的。


这是电脑设置的


下面是网络调试助手显示的,通过开发板给它发送的数据是成功了。


我之前以为调试助手下面发的网址应该是给开发板,然后开发板网址在回到调试助手上面显示,好像不是这样
while(res==0)
{
key=KEY_Scan(0);
if(key==WKUP_PRES)break;
if(key==KEY0_PRES)//KEY0按下了,发送数据
{
udp_demo_senddata(udppcb);
}
if(udp_demo_flag&1<<6)//是否收到数据?
{
LCD_Fill(30,250,lcddev.width-1,lcddev.height-1,WHITE);//清上一次数据
LCD_ShowString(30,250,lcddev.width-30,lcddev.height-230,16,udp_demo_recvbuf);//显示接收到的数据
udp_demo_flag&=~(1<<6);//标记数据已经被处理了.

按键通过udp_demo_senddata函数发送的是咱们程序本身定义好的数据,
调试助手下面的网址应该是通过那个If显示在LCD上,是这么,我没有买LCD的。
原子哥总结下我的理解你给我看看对不对:
1.远端IP是192.168.1.100,开发板IP是静态IP192.168.1.30。但是没PING通,按道理说开发板给电脑端发送数据是不能 成功了。但是成功了,是怎么回事?
因为我没有LCD所以ludp_demo.c下面的设置远端IP我给屏蔽了,这样远端IP只能是192.168.1.100了吧
//设置远端IP地址
void udp_demo_set_remoteip(void)
{
u8 *tbuf;
// u16 xoff;
// u8 key;
// LCD_Clear(WHITE);
// POINT_COLOR=RED;
// LCD_ShowString(30,30,200,16,16,"Explorer STM32F4");
// LCD_ShowString(30,50,200,16,16,"UDP Test");
// LCD_ShowString(30,70,200,16,16,"Remote IP Set");  
// LCD_ShowString(30,90,200,16,16,"KEY0:+  KEY2:-");  
// LCD_ShowString(30,110,200,16,16,"KEY_UP:OK");  
tbuf=mymalloc(SRAMIN,100); //申请内存
if(tbuf==NULL)return;
//前三个IP保持和DHCP得到的IP一致
lwipdev.remoteip[0]=lwipdev.ip[0];
lwipdev.remoteip[1]=lwipdev.ip[1];
lwipdev.remoteip[2]=lwipdev.ip[2]; 
// sprintf((char*)tbuf,"Remote IP:%d.%d.%d.",lwipdev.remoteip[0],lwipdev.remoteip[1],lwipdev.remoteip[2]);//远端IP
// LCD_ShowString(30,150,210,16,16,tbuf); 
// POINT_COLOR=BLUE;
// xoff=strlen((char*)tbuf)*8+30;
// LCD_ShowxNum(xoff,150,lwipdev.remoteip[3],3,16,0); 
//// while(1)
// {
// key=KEY_Scan(0);
// if(key==WKUP_PRES)break;
// else if(key)
// {
// if(key==KEY0_PRES)lwipdev.remoteip[3]++;//IP增加
// if(key==KEY2_PRES)lwipdev.remoteip[3]--;//IP减少
// LCD_ShowxNum(xoff,150,lwipdev.remoteip[3],3,16,0X80);//显示新IP
// }
// }

2.我想实现是下面调试助手发送那个网址可以在上面显示,怎么实现啊。
有点长,麻烦原子哥给看下。

一周热门 更多>