用阿波罗 stm32f767igt6, 开发板,用 ADC1 通道 2 Pa2脚做脉冲信号 Adc转换;另一通道用 ADC2 通道 3 Pa3脚做脉冲信号 Adc转换;用 Dma完成转换回调函数来获取转换数据;在回调函数里如何区分 Adc1;还是 Adc2的数据; /** * @brief This function handles DMA2 stream0 global interrupt. */ void DMA2_Stream0_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream0_IRQn 0 */ /* USER CODE END DMA2_Stream0_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_adc1); /* USER CODE BEGIN DMA2_Stream0_IRQn 1 */ /* USER CODE END DMA2_Stream0_IRQn 1 */ } /** * @brief This function handles DMA2 stream2 global interrupt. */ void DMA2_Stream2_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream2_IRQn 0 */ /* USER CODE END DMA2_Stream2_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_adc2); /* USER CODE BEGIN DMA2_Stream2_IRQn 1 */ /* USER CODE END DMA2_Stream2_IRQn 1 */ } 在这个 中断里能看出Adc1;还是2数据的 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) { uint8_t i; HAL_ADC_Stop_DMA(&hadc1); HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_12); for(i=0;i<12;i++) { // addata=aResultDMA; u16Adc1Num[u16Adc1No]=aResultDMAAdc1; u16Adc1No++; } HAL_ADC_Start_DMA(&hadc1, aResultDMAAdc1, 12); } 这个DMA数据搬完回调函数里,看不出是Adc1;还是Adc2数据 |
这里不是有一个参数吗?在函数里面判断一下不就好了,不同ADC放到不同的数组里。
评分
查看全部评分
http://www.controllerstech.com/s ... els-updated-method/
评分
查看全部评分