我想实现8通道电压采集及电压有效值计算,通道部分是在例程的基础上加了PA6和7,电压部分采用的是开发板的3.3V,采样为50次,结果数据不对,数据结果在附件中,有效值计算及主程序代码如下。
void Mathcal(void)
{
float ADC_SumValue = 0;
for(uint16_t i=0;i<NOFCHANEL;i++)
{
for(uint16_t j=0;j<NOFSAMPL;j++)
{
ADC_ConvertedValueLocal[j] =(float) ADC_ConvertedValue[j]/4096*3.3;
ADC_SumValue=ADC_SumValue+(ADC_ConvertedValueLocal[j])*(ADC_ConvertedValueLocal[j]);
printf(&quot;\r\n值ADC_ConvertedValueLocal[%d][%d] = %f V \r\n&quot;,i,j,ADC_ConvertedValueLocal[j]);
printf(&quot;\r\n\r\n&quot;);
}
ADC_RootValue = sqrt(ADC_SumValue /NOFSAMPL);
printf(&quot;\r\n有效值Value[%d] = %f V \r\n&quot;,i,ADC_RootValue);
printf(&quot;\r\n\r\n&quot;);
printf(&quot;\r\n\r\n&quot;);
ADC_SumValue = 0;
}
}
/*** @brief 主函数* @param 无 * @retval 无 ***/
int main(void)
{
// 配置串口
USART_Config();
// ADC 初始化
ADCx_Init();
printf(&quot;\r\n ----这是一个ADC多通道采集实验----\r\n&quot;);
while (1)
{
Delay(0xffffff);
Mathcal();
Delay(0xffffff);
}
} |