你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

DMA数据搬完回调函数里,看不出是Adc1;还是Adc2数据

[复制链接]
wangliansz 提问时间:2019-7-18 16:07 /
用阿波罗
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数据

收藏 评论4 发布时间:2019-7-18 16:07

举报

4个回答
bl2019 回答时间:2019-7-19 13:32:23
调试一下,感觉是ADC1
tgw860910 回答时间:2019-7-19 13:33:50
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
这里不是有一个参数吗?在函数里面判断一下不就好了,不同ADC放到不同的数组里。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

奏奏奏 回答时间:2019-7-19 13:50:06
建议楼主看一下这个文章:
http://www.controllerstech.com/s ... els-updated-method/
danke1a09b4c 回答时间:2019-7-21 09:55:14
钩子hadc1就是1,hadc2就是2

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版