看见未来 发表于 2014-1-14 19:27 
6675每次采样时间大概在300ms左右,所以读取数据间隔时间是必要的。
如果这个注意了,误差太大,可能是
1 ...
unsigned int Read_MAX6675_Temp_J1(void)
{
int Dummy=0,i=0;
Uint16 Temperature;
GpioDataRegs.GPADAT.bit.GPIO18 = 0; //使能片选
for (i=0;i<500;i++);
SpiaRegs.SPICTL.bit.TALK = 0;
for (i=0;i<500;i++);
SpiaRegs.SPITXBUF = Dummy;
for (i=0;i<500;i++);
while (SpiaRegs.SPISTS.bit.INT_FLAG==0) ;
for (i=0;i<500;i++);
Temperature=SpiaRegs.SPIRXBUF;
for (i=0;i<500;i++);
GpioDataRegs.GPADAT.bit.GPIO18 = 1; //退出时关片选
Temp_Error_Flag=(Temperature&0x04)>>2;
Temperature=Temperature&0x7fff;
Temperature=Temperature>>3;
Temperature=1023.75*Temperature/4095;
return Temperature;
}
这个是程序,cpu用的f28335的,你说的两点都做过了没发现什么问题,总共是五路信号,但五路室温下读出来都是130多度。。。
但值得注意的有一点是我把公式改为
Temperature=1024*Temperature/4096;
这个以后每个传感器读出的温度大概都是10来度,但问题是给传感器加热之后读出来的温度一直都保持不变不知道是为什么
|