新手入门
- 积分
- 14
- 金钱
- 14
- 注册时间
- 2020-3-17
- 在线时间
- 5 小时
|
//ESP8266Ä£¿éoíPC½øèëí¸′«Ä£ê½
void esp8266_start_trans(void)
{
OLED_Init();
OLED_Clear();
esp8266_send_cmd("AT","OK",50);
OLED_ShowString(6,0,"0",8);
delay_ms(1000);
OLED_Clear();
//éèÖÃ1¤×÷Ä£ê½ 1£ostationÄ£ê½ 2£oAPÄ£ê½ 3£o¼æèY AP+stationÄ£ê½
esp8266_send_cmd("AT+CWMODE=3","OK",50);
OLED_ShowString(6,0,"1",8);
delay_ms(1000);
OLED_Clear();
//èÃWifiÄ£¿éÖØÆôμÄÃüáî
esp8266_send_cmd("AT+RST","OK",20);
OLED_ShowString(6,1,"2",8);
delay_ms(1000);
OLED_Clear();
delay_ms(1000); //Ñóê±3Sμè′yÖØÆô3é1|
delay_ms(1000);
delay_ms(1000);
//èÃÄ£¿éᬽóéÏ×Ô¼oμÄ·óé
while(esp8266_send_cmd("AT+CWJAP=\"lege\",\"hujiale19980801\"","WIFI GOT IP",300));
OLED_ShowString(6,2,"3",8);
delay_ms(1000);
OLED_Clear();
//=0£oμ¥·ᬽóÄ£ê½ =1£o¶à·ᬽóÄ£ê½
esp8266_send_cmd("AT+CIPMUX=0","OK",20);
OLED_ShowString(6,3,"4",8);
//½¨á¢TCPᬽó ÕaËÄÏî·Ö±e′ú±íáË òaᬽóμÄIDoÅ0~4 ᬽóààDí Ô¶3ì·tÎñÆ÷IPμØÖ· Ô¶3ì·tÎñÆ÷¶Ë¿úoÅ
while(esp8266_send_cmd("AT+CIPSTART=\"TCP\",\"192.168.0.105\",8080","OK",200));
OLED_ShowString(6,4,"5",8);
delay_ms(1000);
OLED_Clear();
//êÇ·ñ¿aÆôí¸′«Ä£ê½ 0£o±íê¾1Ø±Õ 1£o±í꾿aÆôí¸′«
esp8266_send_cmd("AT+CIPMODE=1","OK",200);
OLED_ShowString(6,5,"6",8);
delay_ms(1000);
OLED_Clear();
//í¸′«Ä£ê½Ï ¿aê¼·¢Ëíêy¾YμÄÖ¸áî Õa¸öÖ¸áîÖ®oó¾í¿éòÔÖ±½ó·¢êy¾YáË
esp8266_send_cmd("AT+CIPSEND","OK",200);
OLED_ShowString(6,6,"7",8);
}
//ESP8266íË3öí¸′«Ä£ê½ ·μ»ØÖμ:0,íË3ö3é1|;1,íË3öê§°ü
//ÅäÖÃwifiÄ£¿é£¬í¨1yÏëwifiÄ£¿éá¬Dø·¢Ëí3¸ö+£¨Ã¿¸ö+oÅÖ®¼ä 3¬1y10ms,ÕaÑùèÏÎaêÇá¬Døèy′η¢Ëí+£©
u8 esp8266_quit_trans(void)
{
u8 result=1;
u3_printf("+++");
delay_ms(1000); //μè′y500msì«éù òa1000ms2Å¿éòÔíË3ö
result=esp8266_send_cmd("AT","OK",20);//íË3öí¸′«ÅD¶Ï.
if(result)
printf("quit_trans failed!");
else
printf("quit_trans success!");
return result;
}
//ÏòESP8266·¢ËíÃüáî
//cmd:·¢ËíμÄÃüáî×Ö·û′®;ack:Æú′yμÄó|′e½á1û,èç1ûÎa¿Õ,Ôò±íê¾2»Dèòaμè′yó|′e;waittime:μè′yê±¼ä(μ¥λ:10ms)
//·μ»ØÖμ:0,·¢Ëí3é1|(μÃμ½áËÆú′yμÄó|′e½á1û);1,·¢Ëíê§°ü
u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 waittime)
{
u8 res=0;
USART3_RX_STA=0;
u3_printf("%s\r\n",cmd); //·¢ËíÃüáî
if(ack&&waittime) //Dèòaμè′yó|′e
{
while(--waittime) //μè′yμ1¼Æê±
{
delay_ms(10);
if(USART3_RX_STA&0X8000)//½óêÕμ½Æú′yμÄó|′e½á1û
{
if(esp8266_check_cmd(ack))
{
printf("ack:%s\r\n",(u8*)ack);
break;//μÃμ½óDD§êy¾Y
}
USART3_RX_STA=0;
}
}
if(waittime==0)res=1;
}
return res;
}
//ESP8266·¢ËíÃüáîoó,¼ì2a½óêÕμ½μÄó|′e
//str:Æú′yμÄó|′e½á1û
//·μ»ØÖμ:0,ûóDμÃμ½Æú′yμÄó|′e½á1û;ÆäËû,Æú′yó|′e½á1ûμÄλÖÃ(strμÄλÖÃ)
u8* esp8266_check_cmd(u8 *str)
{
char *strx=0;
if(USART3_RX_STA&0X8000) //½óêÕμ½ò»′Îêy¾YáË
{
OLED_ShowString(0,2,USART3_RX_BUF,8);
USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//ìí¼ó½áêø·û
strx=strstr((const char*)USART3_RX_BUF,(const char*)str);
OLED_ShowString(0,6,strx,8);
}
return (u8*)strx;
}
//ÏòESP8266·¢Ëíêy¾Y
//cmd:·¢ËíμÄÃüáî×Ö·û′®;waittime:μè′yê±¼ä(μ¥λ:10ms)
//·μ»ØÖμ:·¢Ëíêy¾Yo󣬷tÎñÆ÷μÄ·μ»ØÑéÖ¤Âë
u8* esp8266_send_data(u8 *cmd,u16 waittime)
{
char temp[5];
char *ack=temp;
USART3_RX_STA=0;
u3_printf("%s",cmd); //·¢ËíÃüáî
if(waittime) //Dèòaμè′yó|′e
{
while(--waittime) //μè′yμ1¼Æê±
{
delay_ms(10);
if(USART3_RX_STA&0X8000)//½óêÕμ½Æú′yμÄó|′e½á1û
{
USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//ìí¼ó½áêø·û
ack=(char*)USART3_RX_BUF;
printf("ack:%s\r\n",(u8*)ack);
USART3_RX_STA=0;
break;//μÃμ½óDD§êy¾Y
}
}
}
return (u8*)ack;
}
u8 esp8266_receive_data(){
u8* str;
USART3_RX_STA=0;
str=USART3_RX_BUF;
return *str;
}
|
-
运行结果
|