Max31855测温的使用

最近在用stm32做关于max31855的程序,总结了一些使用经验。

1.Max31855的介绍

     MAX31855具有冷端补偿,将K、J、N、T或E型热电偶信号转换成数字量。 器件输出14位带符号数据,通过SPITM兼容接口、以只读 格式输出。转换器的温度分辨率为0.25℃,最高温度读数 为+1800℃,最低温度读数为-270℃,对于K型热电偶, 温度范围为-200℃至+700℃,保持±2℃精度 。

总的来说,MAX31855测温范围非常广。

2.使用Max31855的具体实现方法

 

     对于max31855,我们只需要了解是如何传输数据的,我们采用的是软件模拟SPI获取温度,驱动CS为低电平时,改变SCK的高低电平,再通过检查SO的高低电平,来获取温度。读取完整的冷端补偿热电偶温度,需要14个时钟周期。读取热电偶和参考端温度需要32个时钟周期。D31为热电偶温度符号位。其中D18到D31为热电偶周围温度的数据,(D4到D15为参考端温度的数据,一般这一部分我们不需要使用,如果需要测量参考端温度,温度分辨率应该变为0.625。那我们需要改变位数

 

             主要注意延时时间的控制。

3.代码如下

 

int32_t ReadMAX31855(void)
{
   u8 count;	
   int32_t temp=0;
   GPIO_SetBits(GPIOB,D_CS);
   delay_ms(180);
   GPIO_ResetBits(GPIOB, D_CS);//CS=0;
	    for(count=0;count<=31;count++)
		{
		  GPIO_SetBits(GPIOB, D_SCK);//read data SO
		  delay_ms(1);
		  temp<<=1;
		  if(GPIO_ReadInputDataBit(GPIOB,D_SO))
		  temp|=0x00000001;
		  GPIO_ResetBits(GPIOB, D_SCK);
		  delay_ms(1);
		}
		GPIO_SetBits(GPIOB, D_CS);//CS=1;
		temp>>=17;	
		Value = (temp*100)/4;
	
return  Value;
}

主要注意延时时间的控制。

4.实际测试结果如下

  我首先是室内温度的测试,然后再测量冰块的温度,后两位为小数。测试结果还可以。

 

 

 

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值