请教下,stm32f7xx 的lcd与sai的时钟源是否相同 ?
请教下,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)
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; //设置PLLSAIN
RCCSAI1_Sture.PLLSAI.PLLSAIQ = (u32)SAI_PscTab; //设置PLLSAIQ
RCCSAI1_Sture.PLLSAIDivQ = SAI_PscTab; //设置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(&PeriphClkIniture)==HAL_OK) //配置像素时钟,这里配置为时钟为18.75MHZ
{
return 0; //成功
}
else
return 1;//失败
}
上述的两个时钟源都使用到
PLLSAI.PLLSAIN
PLLSAI.PLLSAIQ
PLLSAIDivQ
,他们在同时使用时是否会发生冲突啊 ?????
本帖最后由 toofree 于 2018-2-12 09:37 编辑
给你上个图,看能说明问题不。图片放大看
意思就是LCD可以与SDI1是由同一个时钟模块PLLSAI1产生,但是输出的分频系数可以不同。
SDI1时钟输出也可以从SDI2的时钟模块产生。
toofree 发表于 2018-2-12 09:32
给你上个图,看能说明问题不。图片放大看
大神的回复,
真到位,一针见血了。:lol 无薪税绵 发表于 2018-2-12 14:22
大神的回复,
真到位,一针见血了。
有好工具得用:)
各种MCU,我一上来就喜欢看时钟树
页:
[1]