关于ADC软件触发问题

[复制链接]
603|0
 楼主| 无幻 发表于 2020-4-21 03:40 | 显示全部楼层 |阅读模式
问题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);
    }

}

上面代码不在中断服务函数中,而是在主函数中
您需要登录后才可以回帖 登录 | 注册

本版积分规则

431

主题

436

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部