max31855读出来温度经常跳变
时间: 2023-10-22 21:10:28 浏览: 78
MAX31855是一种将K、J、N、T或E型热电偶信号转换成数字量的器件。它通过SPITM兼容接口以只读格式输出数据。MAX31855输出的是14位带符号数据,具有0.25℃的温度分辨率。温度范围为-270℃到1800℃,对于K型热电偶,温度范围为-200℃至700℃,并具有±2℃的精度。
在使用MAX31855时,我们可以采用软件模拟SPI来获取温度数据。具体操作是通过控制CS引脚的电平,改变SCK引脚的高低电平,并检查SO引脚的状态来获取温度。读取完整的冷端补偿热电偶温度需要14个时钟周期,而读取热电偶和参考端温度需要32个时钟周期。在获取数据时,D31为热电偶温度的符号位,D18到D31为热电偶周围温度的数据。如果需要测量参考端温度,温度分辨率应该变为0.625。
下面是一个用于读取MAX31855数据的示例代码:
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;
}
通过以上代码,我们可以读取MAX31855的温度数据,并将其转换为实际温度值。