新手入门
- 积分
- 19
- 金钱
- 19
- 注册时间
- 2022-10-18
- 在线时间
- 13 小时
|
7金钱
写的函数如下:
bool ESP8266_MQTTUSERCLIENTID( char * ClienId )
{
char cCmd [120];
sprintf(cCmd,"AT+MQTTCLIENTID=0,\"%s\"",ClienId );
return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 1000 );
}
bool ESP8266_Send_AT_Cmd(char *cmd,char *ack1,char *ack2,u32 time)
{
ESP8266_Fram_Record_Struct .InfBit .FramLength = 0; //重新接收新的数据包
ESP8266_USART("%s\r\n",cmd);
if(ack1==0&&ack2==0) //不需要接收数据
{
return true;
}
delay_ms(time); //延时
delay_ms(1000);
ESP8266_Fram_Record_Struct.Data_RX_BUF[ESP8266_Fram_Record_Struct.InfBit.FramLength ] = '\0';
printf("%s",ESP8266_Fram_Record_Struct .Data_RX_BUF);
if(ack1!=0&&ack2!=0)
{
return ( ( bool ) strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, ack1 ) ||
( bool ) strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, ack2 ) );
}
else if( ack1 != 0 ) //strstr(s1,s2);检测s2是否为s1的一部分,是返回该位置,否则返回false,它强制转换为bool类型了
return ( ( bool ) strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, ack1 ) );
else
return ( ( bool ) strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, ack2 ) );
}
#define ESP8266_USART(fmt, ...) printf(fmt, ##__VA_ARGS__)
调用这个函数之后一直返回error,另外一个函数也是一样,其他的步骤都没问题 。不知道为什么哎。。很烦
|
|