TI中文支持网
TI专业的中文技术问题搜集分享网站

ads1118内部温度传感器值读取不准

1.ads1118用3.3v供电,室温10~18摄氏度。

2.  SPI_RW_Reg(0x849B);

 while (1)

 {

    delay(0xf0000);

     a=SPI_RW_Reg(0x8499);

     printf("\n\r The Value is %08x \r",a);

 }

3.得到的数据

The Value is 0890049a ~ 08c8049a

4.转换成温度大概是50摄氏度,跟实际不同。

Yun Zhang:

回复 Jack Li:

按照以上功能代码,写入0x81F20000后,我在室温20度左右,得到的原始数据是0x0680,乘以0.03125得到温度为摄氏52度。

为什么差这么远呢?

 

unsigned char cmd[4]={0x81,0xF2,0x00,0x00};   

CS_0;                         //拉低SSN,片选信号使能  

for(i=0; i<4; i++) 

{

  while (!(SPI1_SR & BIT1));  //等待发送缓冲区空

  SPI1_DR = cmd[i];   

  while (!(SPI1_SR & BIT0));  // 等待接收到一个有效数据字节

  GetData[i] = SPI1_DR;

 } 

CS_1;

Decapton Wang:

回复 Yun Zhang:

为什么写81F2?手册22页,最后一位应该写1,是不是应该写成81F3?

Yun Zhang:

回复 Decapton Wang:

前面的代码,如果写入0x81F381F3,得到的4字节数据是0x07 18 02 C9,其中温度数据是0x0718,计数结果已经超过50度了,而室温肯定低于20度的。

SANPIAN:

请问该问题解决了吗?我遇到了类似的问题,我读出来计算的温度为80度左右,不知道怎么回事?

赞(0)
未经允许不得转载:TI中文支持网 » ads1118内部温度传感器值读取不准
分享到: 更多 (0)