这个差分ADC通道采集是否存在问题?直接在ADC_SetDiffInputChannel(ADC_DIFF_CHANNEL_VAIN0); 选择通道0就可以了吗?已经在main中进行RCM_ConfigHIRCDiv(RCM_HIRC_DIV_8);分频
void ADC_ContinuousDiffInitVoltage(void)
{
ADC_Config_T adcConfig;
GPIO_Config_T gpioConfig;
//配置
gpioConfig.mode = GPIO_MODE_IN_FLOATING; // 模拟输入模式
gpioConfig.speed = GPIO_SPEED_10MHz;
gpioConfig.pin = GPIO_PIN_5 | GPIO_PIN_6; // PC5: 正端, PC6: 负端
gpioConfig.intEn = GPIO_EINT_DISABLE;
GPIO_Config(GPIOC, &gpioConfig);
//模式
ADC_SetMode(ADC_MODE_DIFF_INPUT);
ADC_SetDiffInputChannel(ADC_DIFF_CHANNEL_VAIN0); // 选择通道 0(PC5-PC6)
// ADC 配置结构初始化
ADC_ConfigStructInit(&adcConfig);
adcConfig.convMode = ADC_CONV_MODE_SINGLE ; // 连续转换模式
adcConfig.scanMode = ADC_SCAN_MODE_DISABLE; // 禁用扫描
adcConfig.interrupt = ADC_INT_CC; // 转换完成中断标志
adcConfig.channel = ADC_CHANNEL_0; // 必须配置,但差分模式实际由 CHSEL 控制
ADC_Config(&adcConfig);
ADC_Calibration(); // 执行校准,消除偏移误差
ADC_Enable(); // 启用 ADC
ADC_StartConversion(); // 开始连续转换
}
|