OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5849|回复: 7

ATK-rm04与PC通信,使用HTTP GET问题,求助

[复制链接]

16

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-8-22
在线时间
22 小时
发表于 2014-11-3 13:57:12 | 显示全部楼层 |阅读模式
5金钱
使用PC机在局域网内搭建一个网站,用别的电脑可以访问
    开发板这边是用的ATK-RM04,原子哥的例程跑通了可以在局域网内通信,那么问题来了。。。
    


        ATK-RM04设置为WIFI-STA 连接上路由器,远端IP设置为我的PC的IP:192.168.0.107,端口设置成80(http是用于寻址和指定类型的,接死以后就不用http了,直接往端口里送get等命令就好了)
    客户端模式,配置上没问题,但是当连接上之后在不发送GET的情况下也会返回数据,返回的是400,如图:


不知道哪位大神搞过这个,为什么一直返回400,本来还想搞一搞YEELINK,但是发现也是返回400
我期待的目标结果是



如果 能返回这个 就说明正确 了,但是现在不知道 在哪个环节有问题
代码如下:
[mw_shl_code=c,true]u8 atk_rm04_wifista_test(void) { u8 netpro=0; //网络模式 u8 key; u8 timex=0; u8 ipbuf[16]; //IP缓存 u8 *p; u16 t=999; //加速第一次获取链接状态 u8 res=0; u16 rlen=0; u8 constate=0; //连接状态 p=mymalloc(SRAMIN,100); //申请32字节内存 atk_rm04_send_cmd("at+netmode=2","ok",500); //设置WIFI STA(wifi网卡)模式 atk_rm04_send_cmd("at+dhcpc=1","ok",500); //DHCP客户端使能(net_ip无效) //设置连接到的WIFI网络名称/加密方式/密码,这几个参数需要根据您自己的路由器设置进行修改!! sprintf((char*)p,"at+wifi_conf=%s,%s,%s",wifista_ssid,wifista_encryption,wifista_password);//设置无线参数:ssid,加密方式,密码 atk_rm04_send_cmd(p,"ok",500); //配置无线参数 netpro=atk_rm04_netpro_sel(50,30,(u8*)ATK_RM04_NETMODE_TBL[2]); //选择网络模式 atk_rm04_send_cmd("at+remotepro=tcp","ok",500); //TCP协议 sprintf((char*)p,"at+remoteport=%s",portnum); atk_rm04_send_cmd(p,"ok",500); //设置 端口号. atk_rm04_send_cmd("at+remoteip=192.168.0.107","ok",500); //设置远端(连接)IP地址. atk_rm04_send_cmd("at+mode=client","ok",500); //设置为客户端 LCD_Clear(WHITE); POINT_COLOR=RED; Show_Str_Mid(0,30,"ATK-RM04 WIFI-STA 测试",16,240); Show_Str(30,50,200,16,"正在配置ATK-RM04模块,请稍等...",12,0); if(atk_rm04_send_cmd("at+net_commit=1","\r\n",4000))//提交网络配置,最长可能需要等待40s { LCD_Fill(30,50,239,50+12,WHITE); //清除之前的显示 Show_Str(30,50,200,16,"配置ATK-RM04模块失败!",12,0); delay_ms(800); res=1; }else { atk_rm04_send_cmd("at+reconn=1","ok",500); //重启串口转换服务 LCD_Fill(30,50,239,50+12,WHITE); //清除之前的显示 Show_Str(30,50,200,16,"配置ATK-RM04模块成功!",12,0); delay_ms(600); Show_Str(30,50,200,16,"WK_UP:退出测试 KEY0:发送数据",12,0); atk_rm04_quit_trans(); //退出透传 while(atk_rm04_get_wifista_state()==0) //等待ATK-RM04连接上路由器 { Show_Str(30,80,200,12,"ATK-RM04 连接路由器失败",12,0); //连接失败 delay_ms(800); Show_Str(30,80,200,12,"ATK-RM04 等待连接中....",12,0); delay_ms(800); } LCD_Fill(30,80,239,80+12,WHITE); if((netpro&0X01)==0)atk_rm04_get_wanip(ipbuf);//服务器模式,获取WAN IP sprintf((char*)p,"IP地址:%s 端口:%s",ipbuf,(u8*)portnum); Show_Str(30,65,200,12,p,12,0); //显示IP地址和端口 Show_Str(30,80,200,12,"状态:",12,0); //连接状态 Show_Str(120,80,200,12,"模式:",12,0); //连接状态 Show_Str(30,100,200,12,"发送数据:",12,0); //发送数据 Show_Str(30,115,200,12,"接收数据:",12,0); //接收数据 atk_rm04_wificonf_show(30,180,"请设置路由器无线参数为:",(u8*)wifista_ssid,(u8*)wifista_encryption,(u8*)wifista_password); POINT_COLOR=BLUE; Show_Str(120+30,80,200,12,(u8*)ATK_RM04_WORKMODE_TBL[netpro],12,0); //连接状态 USART2_RX_STA=0; while(1) { key=KEY_Scan(0); if(key==4) //WK_UP 退出测试 { res=0; break; }else if(key==1) //KEY0 发送数据 { u2_printf("GET HTTP/1.1\r\n"); //发送 GET请求 u2_printf("Host:192.168.0.107:80\r\n\r\n"); timex=100; } if(timex)timex--; if(timex==1)LCD_Fill(30+54,100,239,112,WHITE); t++; delay_ms(10); if(USART2_RX_STA&0X8000) //接收到一次数据了 { rlen=USART2_RX_STA&0X7FFF; //得到本次接收到的数据长度 USART2_RX_BUF[rlen]=0; //添加结束符 printf("%s",USART2_RX_BUF); //发送到串口 sprintf((char*)p,"收到%d字节,内容如下",rlen);//接收到的字节数 LCD_Fill(30+54,115,239,130,WHITE); POINT_COLOR=BRED; Show_Str(30+54,115,156,12,p,12,0); //显示接收到的数据长度 POINT_COLOR=BLUE; LCD_Fill(30,130,239,319,WHITE); Show_Str(30,130,180,190,USART2_RX_BUF,12,0);//显示接收到的数据 USART2_RX_STA=0; if(constate==0)t=1000; //状态为还未连接,立即更新连接状态 else t=0; //状态为已经连接了,10秒后再检查 } if(t==1000)//连续10秒钟没有收到任何数据,检查连接是不是还存在. { constate=atk_rm04_consta_check()-'0';//得到连接状态 if(constate)Show_Str(30+30,80,200,12,"连接成功",12,0); //连接状态 else Show_Str(30+30,80,200,12,"连接失败",12,0); t=0; } if((t%20)==0)LED0=!LED0; atk_rm04_at_response(1); } } myfree(SRAMIN,p); //释放内存 atk_rm04_quit_trans(); //退出透传 return res; } [/mw_shl_code]



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2014-11-3 14:16:32 | 显示全部楼层
把监听到报文发出来。
于20150522停用该账号:http://www.microstar.club
回复

使用道具 举报

16

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-8-22
在线时间
22 小时
 楼主| 发表于 2014-11-3 19:55:38 | 显示全部楼层
回复【2楼】styleno1:
---------------------------------
哦,你看一下对不对,你看三楼
回复

使用道具 举报

16

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-8-22
在线时间
22 小时
 楼主| 发表于 2014-11-3 19:57:46 | 显示全部楼层
你看一下,红色的是发送的,蓝色是返回的,这个就有问题了,这个命令应该是告诉RM04的,为什么会发送到网络上,是不是我提前退出透传了,我稍微改原子哥的程序。

回复

使用道具 举报

16

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-8-22
在线时间
22 小时
 楼主| 发表于 2014-11-3 20:01:20 | 显示全部楼层
还有就是程序中时不时发送这种+++...啊什么的

回复

使用道具 举报

16

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-8-22
在线时间
22 小时
 楼主| 发表于 2014-11-3 20:03:24 | 显示全部楼层
回复【2楼】styleno1:
---------------------------------
前面都是小问题,重要的问题来了,看下一楼。。。
回复

使用道具 举报

16

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-8-22
在线时间
22 小时
 楼主| 发表于 2014-11-3 20:06:52 | 显示全部楼层
我要发送的是
GET / HTTP/1.1\r\n
Host: 192.168.0.103\r\n\r\n
但是抓的包显示前面还多了一个Gost:192.168.0.1不知道是什么原因,连接的路由器,先请教一下,我换个路由器,或者换一种连接方式试试

回复

使用道具 举报

16

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-8-22
在线时间
22 小时
 楼主| 发表于 2014-11-3 20:37:07 | 显示全部楼层
我单独发送 GET / HTTP/1.1\r\n\r\n
发送的为 




但是加上 HOST: 192.168.0.3   这回就出现了下面的结果,不知道前面是什么

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-29 19:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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