黄莨元
获得 60 次赞
帮助过119人
这个函数有什么问题啊,我想ADC采集和DMA传输600个数据,触发转换是用PWM波的,但是函数卡在了判断传输是否完成那个while循环哪里,如下图,谢谢帮回答 void ADC_Get_Value(void) { HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&ADC_Value,600); HAL_TIM_PWM_Start_IT(&htim2,TIM_CHANNEL_2); //¿ªÊ¼´¥·¢ADת»» while(!__HAL_DMA_GET_FLAG(&hdma_adc1,DMA_FLAG_TCIF0_4))//µÈ´ý´«ÊäÍê³É { printf("%d\r\n",j++); HAL_Delay(100); } __HAL_DMA_CLEAR_FLAG(&hdma_adc1,DMA_FLAG_TCIF0_4); //Çå³ýÍê³É±êÖ¾ if(__HAL_DMA_GET_FLAG(&hdma_adc1,DMA_FLAG_TEIF0_4)) //Åжϴ«ÊäÊÇ·ñ³ö´í { __HAL_DMA_CLEAR_FLAG(&hdma_adc1,DMA_FLAG_TEIF0_4); //Çå³ý±êÖ¾ ADC_Get_Value(); //ÖØвɼ¯ } HAL_TIM_PWM_Stop_IT(&htim2,TIM_CHANNEL_2); //Í£Ö¹´¥·¢ for(i=0;i<600;i++) { printf("%d\r\n",ADC_Value[i]); } }