高级会员

- 积分
- 749
- 金钱
- 749
- 注册时间
- 2020-6-24
- 在线时间
- 311 小时
|
1金钱
stm32H750使用 Hal库+FreeRTOS,发现ADC的回调函数打开后所有其它任务和中断都停了,回调函数部分的均值滤波已经是在时间上优化过,还是不行,大家帮我看看这段代码哪里有问题,回调函数里面的代码注释掉其它任务运行正常,dma方式的adc采集也是正常的(难道DMA方式就不能开ADC转换结束回调函数了?)。
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc){
if(hadc->Instance ==hadc3.Instance)
{
tickCntAdc3++; //40000更新一次
if((tickCntAdc3%1000)==0)
{
Adc3Sum[0]+=Adc3OutBuf[0][0];
Adc3Sum[1]+=Adc3OutBuf[0][1];
if(tickCntAdc3>=40000)
{
tickCntAdc3=0;
Adc3Sum[0]/=40;
Adc3Sum[1]/=40;
Adc3OutBuf[1][0]=Adc3Sum[0];
Adc3OutBuf[1][1]=Adc3Sum[1];
}
}
}
}
|
|