在线时间21 小时
UID289934
ST金币0
蝴蝶豆0
注册时间2011-5-11
中级会员
- 最后登录
- 2020-12-1
|
a0a.1 0b0c
用模拟看门狗限定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,还是会产生中断,怎么回事啊?如果一开始就在模拟看门狗范围之内
程序没有问题,只有在第一次在阀值之外,第二次在阀值之内时出现第一次同样的情况,产生看门狗中断,
|
|