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

基于STM32G431开发板ADC的问题

[复制链接]
老牛洋车 提问时间:2020-4-8 12:33 /
    我使用STM32G431RB开发板开通了ADC1的11、14、15三个通道,通过DMA获得转化值,存在两个问题一直没有解决,一是获得的数组数据与实际通道很难一一对应,即有时重启后会出现数组对应通道的数据会与前次不同,比方说前次数组下标0是对应14通道,而重启后有可能会对应15通道。二是得到的数值不准确,我是用杜邦线连接的,将连接全部切断后数据仍然照旧显示,只有重启后才会显示近似0值,此时再连接上杜邦线,ADC的数值并不会变化。我的代码是通过STM32CubeMX配置的,也许是我哪里配置不正确所致。基本配置的截图如下:

    GPIO的设置:
adc2_01.jpg


    DMA设置:
adc2_02.jpg


adc2_03.jpg


    NVIC设置:
adc2_04.jpg


    用户常数设置:
adc2_05.jpg


    CAD参数设置:
adc2_06.jpg


adc2_07.jpg


adc2_08.jpg


adc2_09.jpg


adc2_10.jpg


    在程序中相关的代码:
    DAM数组定义:
uint32_t adc_buff[4];
uint16_tadc_val[3][11];  //存放10组数据及平均值

    主程序中的相关代码:
    HAL_ADCEx_Calibration_Start(&hadc1,1);   //开启自动校准
    HAL_ADC_Start_DMA(&hadc1,adc_buff,3);    //启动AD转换开关并使能DMA传输和中断


    读取转换值的函数:
void Get_ADC_Val(uint8_t id)
{  
    uint8_t i;
    HAL_ADC_Start_DMA(&hadc1,(uint32_t *) adc_buff,3);
HAL_ADC_ConvHalfCpltCallback(&hadc1);
for ( i=0;  i<3;  i++ )   //分别处理三路ADC
    {   
        adc_val[id] = (float)(adc_buff&0xfff)*2000/4096;  //最大测量电压20V,保留两位小数
    }
    HAL_ADC_Stop_DMA(&hadc1);
}

    请教各位看看我的设置有哪些问题,谢谢!
收藏 评论3 发布时间:2020-4-8 12:33

举报

3个回答
老牛洋车 回答时间:2020-4-8 12:36:32
这是主程序中调取ADC数据和计算平均值的代码:

            //ADC处理
                        adc_id++;
                        if(adc_id > 9) adc_id = 0;
                        Get_ADC_Val(adc_id);         //读取adcl转换数据,存放在id下标数组中

            for( i=0; i<3; i++){
                                adc_val[i][10] = 0;      //计算10次测量的平均值
                                for( j=0; j<10; j++){
                                    adc_val[i][10] += adc_val[i][j];
                                }
                                adc_val[i][10] = adc_val[i][10] / 10;
                        }
老牛洋车 回答时间:2020-4-8 14:04:08
是不是开启的通道不连续的问题?我目前开通的是11、14和15三个通道。
老牛洋车 回答时间:2020-4-8 18:44:28
经过上网搜索,对比各项设置,已经基本解决了问题。由于反复修改,目前尚不清楚究竟是哪里设置不正确,还待慢慢对比截图。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版