OpenEdv-开源电子网

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

关于DMA方式ADC采集并显示图像

[复制链接]

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2020-6-7
在线时间
67 小时
发表于 2021-6-1 11:01:36 | 显示全部楼层 |阅读模式
10金钱
想做一个示波器程序,把采集到的数据显示在GRAPH控件里,ADC的采集方式是DMA,可以显示波形,但是波形有错误,每次采集够了才显示, 求大神解答 怎么搞? 微信图片_20210601105649.jpg

代码是基于正点的修改的,,下面是部分
首先在初始化里头开adc   HAL_ADC_Start_DMA(&ADC3_Handler, (uint32_t*)&DMA_AD,750);
然后 在把读到的放到buffer :void task_adc(void)
     {     
        int i;
        static int count=0;
                        if(FinishFlag3==1)
                     {
                           for(i=0;i<oscilldev.dataxsize;i++)
                                {
                                oscilldev.buffer[count]=(int)(float)DMA_AD*3300/4095;  
                        count++;
                                }
                                FinishFlag3=0;
                     }                         
                         if(count>oscilldev.dataxsize)//一次数据采集完成
                        {
                                count=0;
                                oscilldev.adflag=1;//标记AD采集完成
                        }


}

最后显示 就是跟正点一样 就不贴了

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

使用道具 举报

6

主题

889

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1468
金钱
1468
注册时间
2020-8-19
在线时间
333 小时
发表于 2021-6-1 11:12:15 | 显示全部楼层
回复

使用道具 举报

4

主题

456

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1072
金钱
1072
注册时间
2021-4-26
在线时间
352 小时
发表于 2021-6-1 14:49:48 | 显示全部楼层
在for循环结束时,i=oscilldev.dataxsize=count,他们三个的数值相等,这样的话怎么进行 count>oscilldev.dataxsize 的判断呢
回复

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2020-6-7
在线时间
67 小时
 楼主| 发表于 2021-6-1 16:32:43 | 显示全部楼层
zzk111 发表于 2021-6-1 14:49
在for循环结束时,i=oscilldev.dataxsize=count,他们三个的数值相等,这样的话怎么进行 count>oscilldev.d ...

我改成 count==dataxsize 就判定采集完成
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 09:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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