[STM32F1] STM32 ESP8266

[复制链接]
 楼主| MOMO2333 发表于 2018-1-29 17:26 | 显示全部楼层 |阅读模式
在原子哥的例程上稍微改动了一下,建立STA TCP client 模式下与电脑的通信。接收数据没有问题,但是发送数据只有第一次成功,之后总是连接不上。不知道什么问题,还请大家赐教。

发送数据部分代码如下:
  1. //WIFI STA ·¢ËÍÊý¾Ý
  2. //length :·¢ËÍÊý¾Ý³¤¶È
  3. //pointer:Ö¸Ïò·¢ËÍÊý¾Ý  £¡£¡£¡£¡£¡£¡£¡£¡Ö¸ÕëÀàÐ͸ù¾ÝÊý¾Ý²»Í¬¿ÉÄÜÒª¸Ä£¡£¡£¡
  4. void atk_8266_wifista_send(u8 length,char *pointer)
  5. {
  6.         u8 *q;
  7.         u8  j;
  8.         q=mymalloc(32);                                                        //ÉêÇë32×Ö½ÚÄÚ´æ                       
  9.         atk_8266_quit_trans();
  10.   while(atk_8266_send_cmd("AT+CIPSEND","OK",20));      //¿ªÊ¼Í¸´«           
  11.         {
  12.      if(!atk_8266_send_cmd("AT+CIPSEND","ERROR",20))//Èô¶Ï¿ª£¬ÔòÖØÐÂÁ¬½Ó
  13.                         {
  14.                         sprintf((char*)q,"AT+CIPSTART="TCP","%s",%s","192.168.43.186","8080");    //ÅäÖÃÄ¿±êTCP·þÎñÆ÷
  15.                         while(atk_8266_send_cmd(q,"OK",200));
  16.                
  17.                         atk_8266_send_cmd("AT+CIPMODE=1","OK",200);      //´«ÊäģʽΪ£ºÍ¸´«                       
  18.                         USART2_RX_STA=0;
  19.                         atk_8266_quit_trans();
  20.                         }
  21.         }                                                                               
  22.               for(j=0;j<length;j++)                                                        //Ñ­»··¢ËÍÊý¾Ý
  23.              {
  24.             while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET); //Ñ­»··¢ËÍ,Ö±µ½·¢ËÍÍê±Ï   
  25.                   USART_SendData(USART2,*(pointer++));
  26.              }
  27.                                
  28.         myfree(q);                //ÊÍ·ÅÄÚ´æ
  29.        
  30. }


仿真死在这一步:
  1.   while(atk_8266_send_cmd("AT+CIPSEND","OK",20));      //¿ªÊ¼Í¸´«           
  2.         {
  3.      if(!atk_8266_send_cmd("AT+CIPSEND","ERROR",20))//Èô¶Ï¿ª£¬ÔòÖØÐÂÁ¬½Ó
  4.                         {
  5.                         sprintf((char*)q,"AT+CIPSTART="TCP","%s",%s","192.168.43.186","8080");    //ÅäÖÃÄ¿±êTCP·þÎñÆ÷
  6.                         while(atk_8266_send_cmd(q,"OK",200));
  7.                
  8.                         atk_8266_send_cmd("AT+CIPMODE=1","OK",200);      //´«ÊäģʽΪ£ºÍ¸´«                       
  9.                         USART2_RX_STA=0;
  10.                         atk_8266_quit_trans();
  11.                         }
  12.         }                                                                               

电脑接收结果如下:
  1. 【Receive from 192.168.43.254 : 25700】:
  2. AT+CIPSEND

  3. L0E+++
  4. AT

  5. AT+CIPSEND

  6. AT+CIPSEND

  7. AT+CIPSEND

  8. AT+CIPSEND

  9. AT+CIPSEND

  10. AT+CIPSEND

  11. AT+CIPSEND

  12. AT+CIPSEND

  13. AT+CIPSEND
junpeng324 发表于 2018-1-29 19:36 | 显示全部楼层
可以参考下野火或者原子的例子,很详细。
萧洛毫 发表于 2018-1-30 08:49 | 显示全部楼层
这个问题,可以直接问原子,去他的论坛问问。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

8

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部