INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13) { TIM2_ClearFlag(TIM2_FLAG_UPDATE); GPIO_WriteReverse(GPIOD, GPIO_PIN_2); while((ADC1->CSR & 0x80)!=0x80); // 等待转换结束 u16_adc1_value = ADC1_GetBufferValue(0x04); //read ad4; u16_adc2_value = ADC1_GetBufferValue(0x05); //read ad5 } 中断程序如上,PD2有翻转,但是u16_adc1_value值和u16_adc2_value一直为0,实际PB4和PB5是1.65V电压的。 但如果把下面的三个语句放在主语序里,就可以读到,为什么? while((ADC1->CSR & 0x80)!=0x80); // 等待转换结束 u16_adc1_value = ADC1_GetBufferValue(0x04); u16_adc2_value = ADC1_GetBufferValue(0x05); |
是用STM8