打印

STM32F103 ADC采样时钟为0,紧急求救,在线等

[复制链接]
1980|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
starlite_jason|  楼主 | 2013-4-2 11:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
时钟已经配置好,下面是初始化和转换的代码,大侠帮忙看看

void Init_ADC(void)
{
        ADC_InitTypeDef           ADC_InitStructure;
       
        /* ADC1 configuration ------------------------------------------------------*/
          ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
          ADC_InitStructure.ADC_ScanConvMode = ENABLE;                        //ENABLE
        ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;                //ENABLE
          ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
          ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
          ADC_InitStructure.ADC_NbrOfChannel = 4;
          ADC_Init(ADC1, &ADC_InitStructure);

        ADC_RegularChannelConfig(ADC1, ADC_AUDIO, ADC_BUF_AUDIO, ADC_SampleTime_71Cycles5);  
        ADC_RegularChannelConfig(ADC1, ADC_KEY, ADC_BUF_KEY, ADC_SampleTime_71Cycles5);  
        ADC_RegularChannelConfig(ADC1, ADC_STUDYKEY, ADC_BUF_STUDYKEY, ADC_SampleTime_71Cycles5);  
        ADC_RegularChannelConfig(ADC1, ADC_TEMPSENSOR, ADC_BUF_SENSOR, ADC_SampleTime_71Cycles5);  

        ADC_TempSensorVrefintCmd(ENABLE);

        //ADC_DMACmd(ADC1,ENABLE);
        ADC_Cmd(ADC1, ENABLE);
       
        ADC_ResetCalibration(ADC1);
        while(ADC_GetResetCalibrationStatus(ADC1));
        ADC_StartCalibration(ADC1);
        while(ADC_GetCalibrationStatus(ADC1));

        //ADC_SoftwareStartConvCmd(ADC1, ENABLE);

}

BYTE ADCConvert(BYTE ChNO)
{
        WORD AdcValue;

        ADC_SoftwareStartConvCmd(ADC1, ENABLE);
        while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));

        AdcValue = ADC_GetConversionValue(ADC1);
        ADC_SoftwareStartConvCmd(ADC1, DISABLE);

        return (BYTE)AdcValue;
       
}
沙发
jiaxinhui| | 2013-4-2 11:59 | 只看该作者
请参考我这个帖中现成的例子:https://bbs.21ic.com/icview-315151-1-1.html  其中有个AD采样的例程

使用特权

评论回复
板凳
IJK| | 2013-4-2 14:58 | 只看该作者
LZ不用DMA,1次转换4个ADC通道恐怕有问题。

使用特权

评论回复
地板
starlite_jason|  楼主 | 2013-4-2 16:31 | 只看该作者
其实我用了DMA,只是没反应,才屏蔽这样试了一下

使用特权

评论回复
5
starlite_jason|  楼主 | 2013-4-2 18:00 | 只看该作者
搞定,不过有看到坛子里说DMA有时候会引起数据错乱,不知道是否真如此。

使用特权

评论回复
6
cjhk| | 2013-4-2 20:33 | 只看该作者
楼主   问题搞定就好   呵呵   顶一个   多逛21ic   没有搞不定的问题   呵呵

使用特权

评论回复
7
IJK| | 2013-4-3 10:37 | 只看该作者
ADC用DMA 当没有干扰时没碰到过问题,在有干扰时就不好说---得具体情况具体看了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

195

帖子

0

粉丝