/******************************************************************************* ** 函数名称: 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 浏览: 64
这段代码是一个函数,名为`App_PACK_TempData_Read`,用于读取电池PACK箱内的温度。该函数没有输入参数,也没有返回值。该函数的主要功能是通过采集ADC数据来计算平均温度值,并进行校准修正。然后,根据修正后的温度值进行滤波处理,并将滤波后的温度值存储在相应的变量中。最后,将温度值发送给BMU以供使用。
这段代码中还使用了其他函数和变量,如`App_ADCTempCorrect`、`Dat_NTC_TempValueCalc`、`f_UpDnLimit`等,这些函数可能是用于校准修正、温度计算和限幅处理等功能的辅助函数。根据代码中的注释,还可以推测出该函数最后修改的时间是2020年10月12日。
需要注意的是,由于我是一个AI模型,无法执行代码或访问外部环境,因此无法提供完整的功能实现和运行结果。如果您对代码有进一步的疑问或需要更多的帮助,请提供更多上下文信息或相关代码。
相关问题
/**********/在c语言中什么意思
在C语言中,`/**********/`并没有特殊的意义。这看起来像是一个注释的样式,但实际上在C语言中,注释是以`/*`开始,并以`*/`结束的。所以,如果你看到`/**********/`,它可能就是一个不完整或者错误的注释。
例如,以下的代码是正确的注释使用方法:
```c
/* 这是一个注释 */
```
而以下的代码是错误的:
```c
/**********/ 这是一个注释 // 这是另一个注释
```
在这个例子中,`/**********/`并没有起到任何作用,只有`/* 这是一个注释 */`是有效的注释。
/** @defgroup */
/** @defgroup 是Doxygen文档生成工具中的一个指令,用于创建一个模块组。模块组是一种将相关的模块组织在一起的方式,可以方便地对这些模块进行管理和查看。
模块组可以包含多个模块,每个模块都有自己的文档和功能。通过使用/** @defgroup 指令,可以为每个模块创建一个独立的文档页面,并将它们组织在一个模块组中。
使用/** @defgroup 指令的格式如下:
/**
* @defgroup group_name group_title
* @{
* // 模块内容
* @}
*/
其中,group_name是模块组的名称,group_title是模块组的标题。在@{和@}之间的部分是模块组的具体内容,可以包含多个模块。
通过使用/** @addtogroup 指令,可以将一个模块添加到已存在的模块组中。例如:
/**
* @addtogroup group_name
* @{
* // 模块内容
* @}
*/
这样,就可以将一个新的模块添加到已存在的模块组中。