STM32在中断里面采样,提高中断频率采样率却没有提高

2019-03-23 15:41发布

TIM3_Int_Init(4,71);中断频率设定

void TIM3_IRQHandler(void)   //TIM3ÖD¶Ï
{
        if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //¼ì2éÖ¸¶¨μÄTIMÖD¶Ï·¢éúóë·ñ:TIM ÖD¶ÏÔ′
                {
               
               
                TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );
                        vol=ADC_ConvertedValue[0];       
                        volp=ADC_ConvertedValue[1];
                        flag=1;
                }               
       
}中断



        RCC_ADCCLKConfig(RCC_PCLK2_Div6);
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_1Cycles5);
        ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 2, ADC_SampleTime_1Cycles5);  ADC设定




        while(1)
        {
               
                if(flag==1)
                {
                        if(adccount<200)
                        {
                        dacval +=vol;
                dacval1 +=volp;       
                        adccount++;
                        }
                        else
                        {
                                DisplayCurve1(dacval1,dacval);
                                 adccount=0;
                                dacval=0;       
                         dacval1=0;
                        }
               
                        flag=0;
          }
                       
        }        主函数

波特率为115200

我设定TIM3_Int_Init(4,71)时,中断频率为200k,理论上采样率也应该为200k,那我采样10s通过串口应该可以得到每组10000个数据点,然而实际上确实每路大概为5000个数据点。当我把TIM3_Int_Init(4,35)时,每路数据量通过串口查看没有什么变化大概为5000个,而当我把TIM3_Int_Init(4,143)时,每路数据大概下降一半为2500个点,我的ADC转换时间为14/12M=1.167us,双路ADC那也占用2.3us,而TIM3_Int_Init(4,35)时中断溢出时间为2.5us,TIM3_Int_Init(4,71)时中断溢出时间为5us,TIM3_Int_Init(4,143)时中断溢出时间为10us,时间应该是完全足够的啊,有人遇到过这种情况吗?实在是不知道问题出现在哪里了。

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。