问题1:简单的试了一下ADC的中断转换和标志位转换,即IT 和 FLAG ,发现软件使能ADC转换的时候,如果此时是中断转换,不需要反复调用 ADC_SoftwareStartConvCmd(ADC2, ENABLE);而当时用FLAG时,需要反复调用 ADC_SoftwareStartConvCmd(ADC2, ENABLE);是不是中断服务函数,或是中断的其他寄存器,自动使能了软件触发,即自动调用或执行和ADC_SoftwareStartConvCmd(ADC2, ENABLE)相同功能的操作?
问题2:可不可以用中断标志位IT来代替FLAG,就是,循环检测IT是否为1,如果为1,表示ADC采集结束?用以下代码来表示
while(1){
while(ADC_GetITStatus(ADC2,ADC_IT_EOC)==SET)
{
printf("DATA Send Successfully\n");
printf("value : %.2f\n",(double)( ADC_GetConversionValue(ADC2)/4096 )* 3.3);
ADC_ClearFlag(ADC2,ADC_IT_EOC);
}
}
上面代码不在中断服务函数中,而是在主函数中 |