初级会员

- 积分
- 173
- 金钱
- 173
- 注册时间
- 2020-6-7
- 在线时间
- 67 小时
|
10金钱
想做一个示波器程序,把采集到的数据显示在GRAPH控件里,ADC的采集方式是DMA,可以显示波形,但是波形有错误,每次采集够了才显示, 求大神解答 怎么搞?
代码是基于正点的修改的,,下面是部分
首先在初始化里头开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采集完成
}
}
最后显示 就是跟正点一样 就不贴了
|
|