OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7388|回复: 8

[求助] STM32F407 外触发双通道adc同步采集没有反应?

[复制链接]

1

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-8-13
在线时间
7 小时
发表于 2015-8-13 19:15:13 | 显示全部楼层 |阅读模式
5金钱
项目要使用F407外触发EXTI_11(规则通道)双路同步ADC采集,试过软件触发没有问题,从EXTI_11输入触发脉冲无反应,代码查不到转换结束标志,也许根本就没有启动转换,帮忙看看是不是哪里配置不对,谢谢了!
adc初始化代码如下:

//初始化ADC                                                                                                                          
void  Adc_Init(void)
{   
  GPIO_InitTypeDef                  GPIO_InitStructure;
        ADC_CommonInitTypeDef ADC_CommonInitStructure;
        ADC_InitTypeDef       ADC_InitStructure;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);                                //使能GPIOA时钟
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);                                //使能GPIOA时钟
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);                                 //使能ADC1时钟
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC2, ENABLE);                         //使能ADC1时钟
       
       
          //先初始化ADC1 2通道1 2
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2;                         //PA1 通道1
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;                                //模拟输入
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;                        //不带上下拉
  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 ;  //EXTI_11初始化
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
  GPIO_Init(GPIOF, &GPIO_InitStructure);
       
  ADC_CommonInitStructure.ADC_Mode = ADC_DualMode_RegSimult;//双路同步模式
  ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;//两个采样阶段之间的延迟5个时钟
  ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_2; //DMA模式2
  ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div4        ;
  ADC_CommonInit(&ADC_CommonInitStructure);                                        //初始化       

  ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;                                        //12位模式
        ADC_InitStructure.ADC_ScanConvMode = DISABLE;                                        //扫描模式       
        ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;                                                                //开启连续转换
        ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_Rising;                               //上升沿触发
        ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_Ext_IT11;                  //外部exti_11触发
       ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;                                                //右对齐       
       ADC_InitStructure.ADC_NbrOfConversion = 1;                                                                //1个转换在规则序列中 也就是只转换规则序列1
       
         ADC_Init(ADC1, &ADC_InitStructure);//ADC1初始化       

        ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;       //上升沿触发
        ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;  
       
        ADC_Init(ADC2, &ADC_InitStructure);//ADC2初始化       
       

        ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_3Cycles );
        ADC_RegularChannelConfig(ADC2, ADC_Channel_2, 1, ADC_SampleTime_3Cycles );

        ADC_Cmd(ADC1, ENABLE);//开启AD转换器         
        ADC_Cmd(ADC2, ENABLE);//开启AD转换器       

//      ADC_SoftwareStartConv(ADC1);                                        //使能指定的ADC1的软件转换启动功能       
       
}       


void EXTI_Configuration(void)   //配置EXTI_11 pin
{
  EXTI_InitTypeDef EXTI_InitStructure;
  /* EXTI line11 configuration -----------------------------------------------*/  
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Event;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
  EXTI_InitStructure.EXTI_Line = EXTI_Line11;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);

}

最佳答案

查看完整内容[请看2#楼]

搞定了谢谢    各位
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-8-13
在线时间
7 小时
 楼主| 发表于 2015-8-13 19:15:14 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2015-8-13 20:19:25 | 显示全部楼层
帮顶。。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

19

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2016-1-12
在线时间
9 小时
发表于 2016-1-12 10:38:30 | 显示全部楼层
楼主,您得到的两路采集数据怎么获取的啊,怎么存起来。求完整程序
回复

使用道具 举报

11

主题

70

帖子

0

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2016-1-5
在线时间
208 小时
发表于 2016-2-23 15:16:35 | 显示全部楼层
你好 你用dma了吗
回复

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-6-18
在线时间
17 小时
发表于 2016-5-11 21:02:28 | 显示全部楼层
感觉LZ 程序写的有点乱!有问题!
回复

使用道具 举报

6

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2015-11-2
在线时间
7 小时
发表于 2016-5-14 10:27:04 | 显示全部楼层
怎么解决的 ,我做到这里了   也用EXTI 11,你的是哪里的问题呢?
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2016-5-17
在线时间
0 小时
发表于 2016-5-17 09:04:13 | 显示全部楼层
本帖最后由 WGLembedded 于 2016-5-17 09:05 编辑

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);        SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOF, EXTI_PinSource11);
/*  楼主在配置外部触发时应该加上上面这2句。有这两句都不用配置GPIO了。 */
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2018-7-11
在线时间
7 小时
发表于 2016-8-16 10:12:04 | 显示全部楼层
怎么解决的呢?问题是出在哪里了      楼主能告诉我一下吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-28 03:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表