OpenEdv-开源电子网

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

ADC采集失败求大神帮忙看看

[复制链接]

16

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2014-7-28
在线时间
2 小时
发表于 2015-8-9 17:16:06 | 显示全部楼层 |阅读模式
5金钱
使用寄存器进行ADC采集,中断模式,结果ADC_DR理数据一直是0X43,求大神帮忙看看
void ADC1_Config(void)
{
   
    RCC->APB2ENR |=1;
    RCC->APB2ENR |=1<<2;
    GPIOC->CRL&=0XFFFFF0FF;//PC2 Analog模式
    GPIOC->CRL|=0X00000800;
//    GPIOC_CRL_bit.CNF2 = 0;      /
//    RCC_APB2ENR_bit.ADC1EN = 1;  //ADC1时钟使能
    RCC->APB2ENR |= 1<<9;  //开ADC1时钟
//    RCC_APB2RSTR_bit.ADC1RST = 1;//ADC1复位 
    RCC->APB2RSTR|=1<<9;
//    RCC_APB2RSTR_bit.ADC1RST = 0;//停止复位
    RCC->APB2RSTR&=~(1<<9);
//    RCC_CFGR_bit.ADCPRE = 2;      //ADC 8分频,即12MHz,
//                                  //ADC时钟设置为12M,ADC最大时钟不能超过14M!
//                                  //否则将导致ADC准确度下降! 
    RCC->CFGR|=2<<14;
    //ADC1_CR1_bit.DUALMOD = 0;  //独立工作模式
//    ADC1_CR1_bit.SCAN = 0;     //非扫描模式
//    ADC1_CR2_bit.CONT = 0;     //单次扫描
    ADC1->CR1=0;               //独立工作模式,非扫描模式,单次扫描
    
//    ADC1_CR2_bit.EXTSEL = 7;   //选择启动转换的外部事件是 软件启动SWSTART
    ADC1->CR2|=7<<17;
//    ADC1_CR2_bit.EXTTRIG = 1;   //使用外部触发,必须使用一个事件来触发
    ADC1->CR2|=1<<20;
//    ADC1_CR2_bit.ALIGN = 0;   //右对齐
    ADC2->CR2&=~(1<<12);
//    ADC1_SQR1_bit.L = 0;    //1个转换在规则通道中 也就是只转换规则通道1
    ADC1->SQR1=0;
    
//    ADC1_SQR3_bit.SQ1 = 12; //选择通道12
    ADC1->SQR3|=12;
//    ADC1_SMPR1_bit.SMP12 = 7;//通道12  239.5周期,提高采样时间可以提高精确度
    ADC1->SMPR1=7<<6;
//    ADC1_CR2_bit.ADON =1;  //使能ADC1
    ADC1->CR2|=1<<0;
//    ADC1_CR2_bit.RSTCAL =1; //使能复位校准
    ADC1->CR2|=1<<3;
//    while(ADC1_CR2_bit.RSTCAL);//等待校准结束
    while(ADC1->CR2&(1<<3));//等待校准结束  
//    ADC1_CR2_bit.CAL = 1; //开启AD校准
    ADC1->CR2|=1<<2;
//    while(ADC1_CR2_bit.CAL);//等待校准结束
    while(ADC1->CR2&(1<<2));
    
//    ADC1_CR1_bit.EOCIE = 1;//开启转换结束中断
    ADC1->CR1|=1<<5;
//    SETENA0 |= 1 << NVIC_ADC1_2;//开启ADC1的全局中断 
    MY_NVIC_Init(1,0,ADC1_2_IRQn,2);//组2
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

16

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2014-7-28
在线时间
2 小时
 楼主| 发表于 2015-8-10 08:29:52 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,寄存器有没有AD采集中断的的例程?
回复

使用道具 举报

4

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2015-7-31
在线时间
19 小时
发表于 2015-8-10 09:59:09 | 显示全部楼层
我不玩寄存器,你的外部触发确定来了?你ad的配置
本人深山苦练20余年,一天只睡4小时,可连续编程100小时不休息,上至带项目、出方案,下至盗账号,学校不支持编程已辍学,家人不支持编程已断绝关系,老婆不支持编程已离婚,小孩不支持编程已送孤儿院,备用电源万兆光纤永不断电断网,门口已埋雷无人打扰
回复

使用道具 举报

16

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2014-7-28
在线时间
2 小时
 楼主| 发表于 2015-8-10 15:11:00 | 显示全部楼层
嗯啊,这个设置的是外部软件触发
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 15:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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