因功能需要ADC要初始化2种方式,正常初始化模式2,当串口接收命令后,ADC初始模式1,采集数据完成后,ADC在初始化模式2调试:
发送命令后ADC模式1初始化正常,可以采集数据。
再次发送命令后ADC再次初始化模式1,不能采集数据。卡在while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
个别情况下可以发送2次串口命令,采集正常,但第三次初始化后肯定出错。
调试用的ADC模式1和模式2是一样的,都是原子的ADC程序。
while
{
if (USART6_RX_STA&0X8000)
{
delay_ms (100);
ADC_DeInit(); //ADC复位
delay_ms (500);
Adc_Init(); //ADC初始化
delay_ms (500);
delay_ms (500);
USART6_RX_STA=0;
ADC_V=0;
ADC_V= Get_Adc_Average(ADC_Channel_12,500);
vdcz = ADC_V/4096.0*3.3*6.1;
}
} |