赞
踩
模块通过串口助手发送MQTT的所有连接命令都是正常的
配置MQTT:
AT+MQTTUSERCFG=0,1,"publisher","bCDEo8NukvSOBfIXUj8","",0,0,""
连接MQTT:
AT+MQTTCONN=0,"52.195.11.47",1883,1
通过STM32发送AT+MQTTUSERCFG命令返回OK,但发送AT+MQTTCONN返回失败,经过反复对比,我的程序没有任何问题,与调试助手发送的命令一模一样,但就是不能连接,于是我用串口助手发送AT+MQTTUSERCFG命令,用STM32发送AT+MQTTCONN命令居然正常,怀疑是AT+MQTTUSERCFG并没有被乐鑫模块识别,可是模块居然返回OK,模块存在bug。
经过各种验证,发现降低串口的单次发送长度可以解决,修复发送函数如下:
void uart0_send_str(const char *str)
{
int len=strlen((char *)str);
int shift =0;
int size;
//at_send_bytes((uchar *)str,len);//单次发送完
while(shift<len)
{
if((len-shift) <20)//每次发送最多20字节
size = len-shift;
else
size = 20;
at_send_bytes((uchar *)str+shift,size);
shift+=size;
HAL_Delay(2);//延时2ms
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。