推荐这款测温方案:热电偶+MAX31855+STM32F103
MAX31855具有冷端补偿,将K、J、N、T或E型热电偶信号转换成数字量(如果使用S和R型热电偶,请联系工厂)。器件输出14位带符号数据,通过SPI™兼容接口、以只读格式输出。转换器的温度分辨率为0.25°C,zui高温度读数为+1800°C,zui低温度读数为-270°C,对于K型热电偶,在-200°C至+700°C温度范围内,保持±2°C精度。对于整个量程范围的精度及其它类型的热电偶,请参考完整数据资料的Thermal Characteristics规格。
MAX31855常见问题问答MAX31855常见问题问答 MAX31855:典型应用电路 MAX31855:典型应用电路 放大+
关键特性
冷端补偿
14位、0.25°C分辨率
提供K、J、N、T和E型热电偶器件版本(如果使用S和R型热电偶,请联系工厂) (参考完整数据资料中的表1)
简单的SPI兼容接口(只读)
检测热电偶对GND或VCC短路
检测热电偶开路
应用
电器设备
汽车
HVAC
工业
6. 程序源码 MAX31855测温程序,分别使用STM32硬件SPI和软件模拟时序两种方式读取温度数据。
/**
******************************************************************************
* @file : max31855.c
* @brief : MAX31855 cold-junction compensated thermocouple-to-digital
* converter program body.
******************************************************************************
*
* Copyright (c) respeke, www.etdev.net
* All rights reserved.
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "max31855.h"
#include "stm32f1xx_hal.h"
/* External variables --------------------------------------------------------*/
SPI_HandleTypeDef hspi1;
/* Private variables ---------------------------------------------------------*/
float tcTemp = 0, cjTemp = 0;
bool tcError = false;
/* Private function prototypes -----------------------------------------------*/
/**
* @brief Delay about 11ns per NOP (72MHz*1.25MIPS/MHz=90MIPS)
* @param None
* @retval None
*/
static void SPI_Delay(uint32_t counter)
{
for(int i=0; i<counter; i++)
{
__NOP();
}
}
未完待续……
|