中级会员
 
- 积分
- 255
- 金钱
- 255
- 注册时间
- 2019-11-6
- 在线时间
- 50 小时
|
1金钱
本帖最后由 KillerO 于 2020-5-6 21:13 编辑
用电脑端也测试过了,还是收不到,我用的是AP模式下模块作TCP模式,手机为TCP客户端,求大神们帮看看是什么原因
int main(void)
{
char a[15];
delay_init(); //Ñóê±oˉêy3õê¼»ˉ
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //éèÖÃNVICÖD¶Ï·Ö×é2:2λÇàÕ¼óÅÏ輶£¬2λÏìó|óÅÏ輶
uart_init(115200); //′®¿ú3õê¼»ˉÎa115200
usart3_init(115200); //′®¿ú3õê¼»ˉÎa115200
LED_Init();
esp8266_start_trans(); //esp8266AP模式配置
while(1)
{
if(USART3_RX_STA&0x8000)
{
printf("USART3_RX_BUF=%s\r\n",USART3_RX_BUF);
sprintf(a,"%s",USART3_RX_BUF);
printf("a=%s",a);
if(strstr((const char*)a,"on"))
{
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
esp8266_send_data("LED0 ON!","OK",100); //·¢Ëíêy¾Y
}
if(strstr((const char*)a,"off"))
{
GPIO_SetBits(GPIOB,GPIO_Pin_5);
esp8266_send_data("LED0 OFF!","OK",100); //·¢Ëíêy¾Y
}
USART3_RX_STA=0;
}
}
}
u8 esp8266_send_data(u8 *data,u8 *ack,u16 waittime)
{
u8 res=0;
USART3_RX_STA=0;
u3_printf("%s",data); //·¢ËíÃüáî
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))break;//μÃμ½óDD§êy¾Y
USART3_RX_STA=0;
}
}
if(waittime==0)res=1;
}
return res;
}
|
最佳答案
查看完整内容[请看2#楼]
问题解决了,模块作为TCP服务器时,想要发送数据,就要先发送数据长度的命令,例如 atk_8266_send_cmd("AT+CIPSEND=0,25","OK",200);
注意格式不要打错,我之前就想到是这个原因,就是打错了指令格式,导致不成功。
|