用模拟看门狗限定AD转换的范围,使用模拟看门狗中断出现问题
用模拟看门狗限定AD转换的范围,使用模拟看门狗中断出现问题main.c中
ADC_Configuration();
do
{
id=ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC);
}while(!id);
if(adc_wd_flag = 1)
{
.......
ADC_DeInit(ADC1);
}
stm32f10x_it.c文件下有如下程序:
void ADC1_2_IRQHandler(void)
{
if(ADC_GetFlagStatus(ADC1, ADC_FLAG_AWD))
{
adc_wd_flag = 1;
ADC_ClearITPendingBit(ADC1, ADC_IT_AWD);
ADC_ClearFlag(ADC1,ADC_FLAG_AWD|ADC_FLAG_STRT);
}
}
if(adc_wd_flag = 1)中函数又返回到前面重新AD转换,当值在模拟看门狗阀值范围之内时,还是会产生模拟看门狗
中断,能清除的标志位都清了,又初始化ADC1,还是会产生中断,怎么回事啊?如果一开始就在模拟看门狗范围之内
程序没有问题,只有在第一次在阀值之外,第二次在阀值之内时出现第一次同样的情况,产生看门狗中断,
RE:用模拟看门狗限定AD转换的范围,使用模拟看门狗中断出现问题
应该是你没有清除对应的看门狗的标志位。RE:用模拟看门狗限定AD转换的范围,使用模拟看门狗中断出现问题
已经解决了,不是中断的问题,是我设定的特值一直保持1,所以一直在循环
页:
[1]