将原子哥 USB声实验中的PWM输出换成DAC输出后 声音有很大噪声

2019-10-16 02:09发布

将原子哥 USB声实验中的PWM输出换成DAC输出后 声音有很大噪声是什么原因,有谁遇到过吗?
改动如下代码
void TIM7_IRQHandler(void)
{                                                                   
        if (TIM_GetITStatus(TIM7, TIM_IT_Update) != RESET)
         {
                LED1=!LED1;
                if ((Out_Data_Offset < In_Data_Offset) && ((u8)(MUTE_DATA) == 0))
                {
                       //TIM4->CCR1=Stream_Buff[Out_Data_Offset]; //&#184;&#196;±&#228WM DACμ&#196;&#214;μ
                        DAC_SetChannel1Data(DAC_Align_8b_R, Stream_Buff[Out_Data_Offset]);
                        Out_Data_Offset++;
                }                                                                                                       
         }                                               
        TIM_ClearITPendingBit(TIM7, TIM_IT_Update  );  
}
在工程中添加 void Dac1_Init(void)
{

        GPIO_InitTypeDef GPIO_InitStructure;
        DAC_InitTypeDef DAC_InitType;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE );          //ê1&#196;üPORTAí¨μàê±&#214;ó
           RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE );          //ê1&#196;üDACí¨μàê±&#214;ó

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;                                 // &#182;&#203;&#191;ú&#197;&#228;&#214;&#195;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;                  //&#196;£&#196;aê&#228;è&#235;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        GPIO_SetBits(GPIOA,GPIO_Pin_4)        ;//PA.4 ê&#228;3&#246;&#184;&#223;
                                       
        DAC_InitType.DAC_Trigger=DAC_Trigger_None;         
        DAC_InitType.DAC_WaveGeneration=DAC_WaveGeneration_None;
        DAC_InitType.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bit0;
        DAC_InitType.DAC_OutputBuffer=DAC_OutputBuffer_Disable ;         
    DAC_Init(DAC_Channel_1,&DAC_InitType);         

        DAC_Cmd(DAC_Channel_1, ENABLE);  //ê1&#196;üDAC1

    DAC_SetChannel1Data(DAC_Align_8b_R, 0);   

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。