外设挂满的时候时钟树要怎么理才不会乱?
开几个串口再加个ADC,时钟源怎么配才不冲突?CubeIDE自动算的不一定是你想要的…… CubeMX拉一下图,不然根本搞不清。 我都是先定主频,再慢慢调分频。 PLL配置一堆分支,调错就死机。 USB和ADC的时钟特别挑,坑。 我直接把CLK树截图贴项目文档里了。 有些外设必须锁特定频率,很烦。 时钟源太多,有点晕。 现在配完都不敢动,一动就炸。 有时候切换系统时钟还得加延时。 优先级分配:高频外设(如USB、以太网)需优先分配高精度时钟源(如PLL)。低频外设(如I2C、RTC)可使用低功耗时钟源(如LSI、LSE) 使用STM32CubeMX生成时钟树配置,并检查是否有冲突或未分配的外设 推荐HSE(外部晶振):高精度(如8MHz),适合作为主时钟源。PLL倍频:将HSE倍频至高频(如400MHz),再分频给不同总线 在STM32H7系列中,外设数量多、时钟源复杂(如HSI、HSE、LSI、LSE、PLL等),当所有外设(如USB、以太网、ADC、DMA、SPI、I2C等)同时启用时,时钟树配置确实容易变得混乱 根据外设使用情况动态开关时钟(如通过__HAL_RCC_*_CLK_ENABLE()宏),避免不必要的功耗浪费 按需启用外设时钟,避免全局启用 从根时钟源到外设时钟逐层配置,确保每层频率合理。而且可以考虑用cubemx来弄 通过逻辑分析仪监测关键时钟信号(如HSE、PLL输出、USB时钟) 在低功耗模式下关闭未使用的外设时钟(如进入Sleep模式时禁用SPI、I2C)
页:
[1]