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