一部分程序:
#include<reg51.h>
#include"esp8266.h"
#include"temp.h"
#include"ds1302.h"
unsigned char code TCPLJ[]={"AT+CIPSTART="TCP","tcp.lewei50.com",9960"}; //TCP连接地址
unsigned char code FSSJ1[]={"{"method": "update","gatewayNo": "02","userkey": "8f032c67b50d4ab192d7bc6938246b43"}&^!"};
unsigned char code FSSJ2[]={"{"method": "upload","data":[{"Name":"T1","Value":""};
unsigned char code FSSJ3[]={"{"method": "upload","data":[{"Name":"H1","Value":""};
unsigned char code SF[]={""}]}&^!"}; //结束标识符
unsigned char code AT[]={"AT
"};
// unsigned char code SD[]="AT+CIPSEND=200";(这句暂时不要)
unsigned char code FS[]={"AT+CIPSEND
"}; //发送的AT指令
void sendstring(unsigned char *str) //发送字符串
{
while((*str) != ' ')
{
sendchar(*str);
str++;
}
}
void sendchar(unsigned char ch) //发送一个字符
{
SBUF=ch;
while(!
ti);
TI=0;
}
//esp8266
void sendtemperature(void)
{ delay1ms(5000);
sendstring(AT);
delay1ms(500);
sendstring(TCPLJ);
delay1ms(500);
sendstring(FS);
delay1ms(500);
sendstring(FSSJ1);//发送注册信息
delay1ms(500);
sendchar(0x1A);
sendstring("
");
delay1ms(500);
sendstring(FS); //开始
delay1ms(500);
sendstring(FSSJ2);//发送温度信息
sendstring(w);
sendstring(SF);
delay1ms(500);
sendchar(0x1A);
sendstring("
");
delay1ms(500);
//发送湿度
sendstring(FS);
delay1ms(500);
sendstring(FSSJ3);//发送湿度
sendstring(w);
sendstring(SF);
delay1ms(500);
sendchar(0x1A);
sendstring("
");
}
有问题的其实是红 {MOD}的这句,那个w变量是别的.c文件里的,那里定义的是double w;w是18b20测出来的温度,一开始每次运行都显示w未定义,问题1:如果是不同的.c文件里的变量,想要引用该怎么办,我是直接放到头文件里面了,然后共用这个头文件,不知道这样可以不?这个extern可以用在这里吗?怎么用啊?
问题2:放到头文件里之后,再运行显示 error C214: illegal pointer conversion,不合法的指针转换什么意思,这个double型的变量w的地址是什么啊?该怎么改?
问题3:话说我看过别人一个用gprs的一个类似的程序,他使用这个w的时候是:extern unsigned char *w;这样,,,怎么写啊?
可以这样使用:
1、在w变量的头文件中增加extern double w;
2、在你的主工程文件里包含以下,#include “*.h” 最佳答案
一周热门 更多>