/******************************************************************************* ** 函数名称: App_PACK_TempData_Read ** 功能描述: 读取电池PACK箱内温度 ** 输 入: 无 ** 输 出: 无 ** 返 回: 无 ** 备 注:无 ** 最后修改: 2020年10月12日 *******************************************************************************/ uint8_t App_PACK_TempData_Read() { uint8_t u8_Index; uint32_t u32_DataTemp; #if 1 u32_DataTemp = 0; for(u8_Index=0; u8_Index<ADC3_DMA2_CHANNEL_BUF_LEN; u8_Index = u8_Index+1)//累加 { u32_DataTemp += u16_ADC3_DMA2_Value[u8_Index][ADC3_IN11_CHANNEL_OFFSET]; } #endif u32_DataTemp = u32_DataTemp/ADC3_DMA2_CHANNEL_BUF_LEN; //取平均值 ADC3_DMA2_CHANNEL_BUF_LEN ADC DMA采集BUFF大小 //以上操作 是为了计算DMA采集到的 ADC数据的平均值 #if 1 u32_DataTemp = App_ADCTempCorrect(u32_DataTemp);//对温度的ADC值使用KB值进行校准修正 #endif st_BMUMonitor.st_BoardTemp.st_LTC6813Data.u16_ADCValue = (uint16_t)u32_DataTemp; Dat_NTC_TempValueCalc(NTC_TABLE_ADC, st_BMUMonitor.st_BoardTemp.st_LTC6813Data.u16_ADCValue, &st_TempCalc.st_Board);//未知处理,返回p_st_TempCalc->f32_Real 温度实时计算值 有进行查表 st_TempCalc.st_Board.f32_Filter += 0.8f * (st_TempCalc.st_Board.f32_Real - st_TempCalc.st_Board.f32_Filter); f_UpDnLimit(&st_TempCalc.st_Board.f32_Filter,170,-50);//限幅函数,输出st_TempCalc.st_Board.f32_Filter 温度滤波值 st_BMUMonitor.st_BoardTemp.f32_Value = st_TempCalc.st_Board.f32_Filter; st_BMUMonitor.st_BoardTemp.s16_Value = (int16_t)(st_BMUMonitor.st_BoardTemp.f32_Value * 10); //此处得出温度后被调用发送 BMU发送PACK箱体数据1 return 0x00; }
时间: 2023-07-23 07:11:48 浏览: 111
这段代码是一个函数,名为`App_PACK_TempData_Read`,用于读取电池PACK箱内的温度。该函数没有输入参数,也没有返回值。该函数的主要功能是通过采集ADC数据来计算平均温度值,并进行校准修正。然后,根据修正后的温度值进行滤波处理,并将滤波后的温度值存储在相应的变量中。最后,将温度值发送给BMU以供使用。
这段代码中还使用了其他函数和变量,如`App_ADCTempCorrect`、`Dat_NTC_TempValueCalc`、`f_UpDnLimit`等,这些函数可能是用于校准修正、温度计算和限幅处理等功能的辅助函数。根据代码中的注释,还可以推测出该函数最后修改的时间是2020年10月12日。
需要注意的是,由于我是一个AI模型,无法执行代码或访问外部环境,因此无法提供完整的功能实现和运行结果。如果您对代码有进一步的疑问或需要更多的帮助,请提供更多上下文信息或相关代码。
阅读全文