使用了ALIENTEK MiniSTM32 扩展实验26 ATK-RM04 WIFI模块测试实验
将test.txt中的内容通过wifi发送出去
第一次按键 串口检测发送正确,但是wifi接收不到 如下
readedi:0
fptr:32
br:32
data:Oh,fuck it.Konw something?
You
readedi:1
fptr:64
br:32
data:are just like the little girls a
readedi:2
fptr:96
br:32
data:nd everybody else.
You wanna li
readedi:3
fptr:128
br:32
data:ve inside some fairy tale.
I am
readedi:4
fptr:160
br:32
data: just trying to make things bett
第二次按键 检测到总是在输出最后一次的内容,但是wifi能够接收到这次的内容 如下:
readedi:0
fptr:0
br:0
data: just trying to make things bett
readedi:1
fptr:0
br:0
data: just trying to make things bett
readedi:2
fptr:0
br:0
data: just trying to make things bett
readedi:3
fptr:0
br:0
data: just trying to make things bett
readedi:4
fptr:0
br:0
data: just trying to make things bett
下面是我写的代码,恳请指正
[mw_shl_code=c,true]#include "common.h"
#include "ff.h"
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//±????ò???©?§?°??????????×÷???í???????????????ü????????
//ALIENTEK STM32??·?°?
//ATK-RM04 WIFI???é ?®???????¨COM-WIFI AP?©?????ú??
//??????×?@ALIENTEK
//????????:www.openedv.com
//????????:2013/10/12
//°?±???V1.0
//°??¨?ù??????°?±?????
//Copyright(C) ?????????í??×????????????? 2009-2019
//All rights reserved
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//ATK-RM04 WIFI AP????
//????????TCP/UDP????
//·?????:0,????
// ????,?í?ó?ú??
u8 atk_rm04_wifiap_test(void)
{
u16 br;
u16 bw;
FIL fp;
FIL fil;
u8 *databuf;
u16 LengthOfBuf=32;
u16 i=0;
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; //????×???
databuf=mymalloc(SRAMIN,LengthOfBuf+1);
p=mymalloc(SRAMIN,32); //?ê??32×???????
atk_rm04_send_cmd("at+netmode=3","ok",500); //?è??WIFI AP????
atk_rm04_send_cmd("at+dhcpd=1","ok",500); //DHCP·????÷????(??AP???????§,?????·???÷?????????§)
atk_rm04_send_cmd("at+dhcpc=0","ok",500); //DHCP???§??????(net_ip???§)
//?è??DHCP IP???··??§,???°×???????????????,??°?????±?.
//?????è??DHCP·??§:192.168.16.100~192.168.16.200,??????:192.168.16.1
atk_rm04_send_cmd("at+dhcpd_ip=192.168.16.100,192.168.16.200,255.255.255.0,192.168.16.1","ok",500);
atk_rm04_send_cmd("at+dhcpd_dns=192.168.16.1,0.0.0.0","ok",500);//DHCP·????÷DNS?è??
//????IP?è??.?è?????é??????IP???·.×??????????°??????.
//?????è?????é???????·??:192.168.16.254,×????????????????°?????ù
atk_rm04_send_cmd("at+net_ip=192.168.16.254,255.255.255.0,192.168.16.1","ok",500);
atk_rm04_send_cmd("at+net_dns=192.168.16.1,0.0.0.0","ok",500);//?è??DNS?è??
//WIFI AP???????é??????WIFI????????/????·???/????,???????????????ù???ú×??????è??????????!!
sprintf((char*)p,"at+wifi_conf=%s,%s,%s",wifiap_ssid,wifiap_encryption,wifiap_password);//?è??????????:ssid,????·???,????
atk_rm04_send_cmd(p,"ok",500); //????????????
PRESTA:
netpro=atk_rm04_netpro_sel(50,30,(u8*)ATK_RM04_NETMODE_TBL[3]); //????????????
if(netpro&0X02)atk_rm04_send_cmd("at+remotepro=udp","ok",500); //UDP???é
else atk_rm04_send_cmd("at+remotepro=tcp","ok",500); //TCP???é
sprintf((char*)p,"at+remoteport=%s",portnum);
atk_rm04_send_cmd(p,"ok",500); //?è?? ??????.
if(netpro&0X01) //???§??
{
if(atk_rm04_ip_set("WIFI-AP ????IP?è??",(u8*)ATK_RM04_WORKMODE_TBL[netpro],(u8*)portnum,ipbuf))goto PRESTA; //IP????
sprintf((char*)p,"at+remoteip=%s",ipbuf);
atk_rm04_send_cmd(p,"ok",500); //?è??????(????)IP???·.
atk_rm04_send_cmd("at+mode=client","ok",500); //?è???????§??
}else atk_rm04_send_cmd("at+mode=server","ok",500); //?è????·?????
LCD_Clear(WHITE);
POINT_COLOR=RED;
Show_Str_Mid(0,30,"ATK-RM04 WIFI-AP ????",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);
Show_Str(30,50,200,16,"WK_UP:???????? KEY0:·???????",12,0);
while((netpro&0X01)==0)//·????÷????
{
atk_rm04_quit_trans(); //????????
atk_rm04_get_wanip(ipbuf); //????WAN IP
if(ipbuf[0])break;
}
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,"ATK-RM04???é????????:",(u8*)wifiap_ssid,(u8*)wifiap_encryption,(u8*)wifiap_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();
if(key==3) //WK_UP ????????
{
res=0;
break;
}else if(key==1) //KEY0 ·???????
{
while(1) {
ROPEN: f_open(&fp,(const TCHAR*)"0:test.txt",FA_READ|FA_OPEN_EXISTING);
f_lseek(&fp,0);
if(FR_OK == 0)
{
for(i=0;i*LengthOfBuf<(&fp)->fsize;i++)
{
f_lseek(&fp,i*LengthOfBuf);
f_read(&fp,databuf,LengthOfBuf,(UINT*)&br);
if(br<LengthOfBuf)//?????ê±???????
{
databuf[br]='\0';//?í???á??·?
f_lseek(&fp,0);
Show_Str(30+54,100,200,12,databuf,12,0);
printf("%s",databuf);
u2_printf("%s",databuf);
break;
}
else if(br==LengthOfBuf)//??·???±í512BYTES????????????
{
databuf[LengthOfBuf]='\0';//?í???á??·?
Show_Str(30+54,100,200,12,databuf,12,0);
printf("%s",databuf);
u2_printf("%s",databuf);
}
}
}
else {printf("%d",FR_OK); goto ROPEN; }
break;
}
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);//????????????????
f_open(&fil,"0:receive.txt",FA_OPEN_ALWAYS|FA_WRITE);//???¨????
f_write(&fil,USART2_RX_BUF,rlen,(UINT*)&bw);
f_close(&fil);
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]
[mw_shl_code=c,true][/mw_shl_code]