www.pudn.com > MAX31855.zip > Max31855.c, change:2014-05-13,size:2755b
/****************************************Copyright (c)************************************************** ** 周泽平 ** ** ** ** **--------------文件信息--------------------------------------------------------------------------------*//** * @file Max31855.c * @brief Max31855驱动模块 * @version 1.0 * @date 2014年 5月 9 日 * @author 周泽平 ** **--------------当前版本修订------------------------------------------------------------------------------ ** 修改人: ** 日 期: ** 描 述: ** **------------------------------------------------------------------------------------------------------ **************************************************************************************************************/ /** @addtogroup Max31855 * @{ */ #include "../include/Max31855.h" Max31855_DATA ChipOut; /*********************************************************************//** * @fun readdata * @brief 读取MAX31855电压值 * @param None * @return 输出数据 ***********************************************************************/ static uint8_t readdata(uint32_t *pData) { uint8_t i; uint32_t tmp; static uint16_t timesticke = 0; if(timesticke < 2000) { timesticke++; return 0; } else { tmp = 0; MAX31855_CLK = LVAR; MAX31855_CS = LVAR; for(i = 0; i < 32; i++) { asm("nop;"); MAX31855_CLK = HVAR; tmp = tmp<<1; if(MAX31855_DATA == HVAR) tmp |= 1; else tmp &= ~1; MAX31855_CLK = LVAR; asm("nop;"); asm("nop;"); asm("nop;"); } MAX31855_CLK = LVAR; MAX31855_CS = HVAR; *pData = tmp; timesticke = 0; return 1; } } /*********************************************************************//** * @fun Max31855_GetTemperatureValue * @brief 读取热电偶温度值 * @param None * @return 热电偶温度值 ***********************************************************************/ int32_t Max31855_GetTemperatureValue(void) { int32_t retHTe; uint32_t temp; if(readdata(&temp)) { ChipOut.all = temp; } retHTe = ChipOut.bit.HTemperature; return retHTe; } /*********************************************************************//** * @fun GetMax31855Fault * @brief 读取热电偶故障情况 * @param None * @return 0:无故障 1:开路 2: 于地短路 3:于VCC短路 ***********************************************************************/ uint8_t GetMax31855Fault(void) { if(ChipOut.bit.FaultFlg) { if(ChipOut.bit.OC) return 1; if(ChipOut.bit.SCG) return 2; if(ChipOut.bit.SCV) return 3; } return 0; } /** * @} */