|
C语言定义长整型变量unsigned long count=123456;
我想通过串口,将这个变量上传服务器,请问如何将这个long变量转成字符串通过串口发送呢,程序中发送命令在POST(),请各位大神帮忙看看。
void POST(void)//POST数据函数
{
int dataLen;
uchar postData[150];
char strLen[3];
char strtemp[20];
sprintf(strtemp,"%d",count);
sprintf(postData,"uid=%s&topic=%s&msg=#%0x#\r\n",Uid,Topic,strtemp);
dataLen = strlen(postData); //计算数据长度
sprintf(strLen,"%d",dataLen); //int类型转char
ESP8266_Set("AT+CIPMODE=1"); //开启透明传输模式
ms_delay(1000);
ESP8266_Set("AT+CIPSTART=\"TCP\",\"api.bemfa点com\",80"); // 连接服务器和端口
ms_delay(1000);
ESP8266_Set("AT+CIPSEND"); //进入透传模式,下面发的都会无条件传输
ms_delay(1000);
ESP8266_Set_Only("POST /api/device/v1/data/1/ HTTP/1.1\r\nHost: api.bemfa点com\r\nContent-Type: application/x-www-form- urlencoded\r\nConnection:close\r\nContent-Length:");//??device? ??sensor?
ESP8266_Set(strLen);//数据长度(postData数据长度),一定要准确
ESP8266_Set("");//回车(发完数据长度后,有回车,不懂的百度http post 格式)
ESP8266_Set(postData);//发送数据
ms_delay(2000);
ESP8266_Set("+++"); //
memset(strLen,'\0',3); //重置数组
memset(postData,'\0',sizeof postData);//重置数组
}
|
|