请教下,stm32f7xx 的lcd与sai的时钟源是否相同 ?
sai 时钟配置如下:
u8 SAIA_SampleRate_Set(u32 samplerate)
{
u8 i=0;
RCC_PeriphCLKInitTypeDef RCCSAI1_Sture;
for(i=0;i<(sizeof(SAI_PscTab)/10);i++)//看看改采样率是否可以支持
{
if((samplerate/10) == SAI_PscTab[0])
break;
}
if(i == (sizeof(SAI_PscTab)/10))
return 1;//搜遍了也找不到
/* Configure PLLSAI prescalers */
/* PLLI2S_VCO: VCO_429M
SAI_CLK(first level) = PLLI2S_VCO/PLLSAIQ = 429/2 = 214.5 Mhz
SAI_CLK_x = SAI_CLK(first level)/PLLI2SDivQ = 214.5/19 = 11.289 Mhz */
RCCSAI1_Sture.PeriphClockSelection = RCC_PERIPHCLK_SAI1; //外设时钟源选择
RCCSAI1_Sture.Sai1ClockSelection = RCC_SAI1CLKSOURCE_PLLSAI;
RCCSAI1_Sture.PLLSAI.PLLSAIN = (u32)SAI_PscTab[1]; //设置PLLSAIN
RCCSAI1_Sture.PLLSAI.PLLSAIQ = (u32)SAI_PscTab[2]; //设置PLLSAIQ
RCCSAI1_Sture.PLLSAIDivQ = SAI_PscTab[3]; //设置PLLSAIDivQ
HAL_RCCEx_PeriphCLKConfig(&RCCSAI1_Sture); //设置时钟
__HAL_SAI_DISABLE(&SAI1A_PlayHandler); //关闭SAI
SAI1A_PlayHandler.Init.AudioFrequency=samplerate; //设置播放频率
HAL_SAI_Init(&SAI1A_PlayHandler); //初始化SAI
SAIA_DMA_Enable(); //开启SAI的DMA功能
__HAL_SAI_ENABLE(&SAI1A_PlayHandler); //开启SAI
return 0;
}
lcd 时钟配置如下:
static u8 LTDC_UserClkSet(u32 pllsain,
u32 pllsair,
u32 pllsaidivr )
{
RCC_PeriphCLKInitTypeDef PeriphClkIniture;
//LTDC输出像素时钟,需要根据自己所使用的LCD数据手册来配置!
PeriphClkIniture.PeriphClockSelection = RCC_PERIPHCLK_LTDC; //LTDC时钟
PeriphClkIniture.PLLSAI.PLLSAIN = pllsain;
PeriphClkIniture.PLLSAI.PLLSAIR = pllsair;
PeriphClkIniture.PLLSAIDivR = pllsaidivr;
if(HAL_RCCEx_PeriphCLKConfig(&amperiphClkIniture)==HAL_OK) //配置像素时钟,这里配置为时钟为18.75MHZ
{
return 0; //成功
}
else
return 1; //失败
}
上述的两个时钟源都使用到
PLLSAI.PLLSAIN
PLLSAI.PLLSAIQ
PLLSAIDivQ
,他们在同时使用时是否会发生冲突啊 ?????
现在的问题是,播放 有些音频文件时,屏幕会有干扰,有些音频文件又没有,跟这个时钟源有没有什么关系啊 ?、 |