STM32F407到STM32F401的代码移植指南

需积分: 49 111 下载量 140 浏览量 更新于2024-07-18 7 收藏 44.34MB PDF 举报
"STM32F407的代码移植到STM32F401涉及到的主要内容是时钟系统的配置。STM32系列微控制器的时钟源包括HSI、HSE、LSI、LSE和PLL。在STM32F401中,系统时钟的选择和配置至关重要,因为它直接影响到各个模块的工作性能和稳定性。时钟配置主要包括对HSI、HSE、LSI、LSE等基础时钟源的启用、禁用以及PLL的设置,以达到所需的系统时钟频率。 HSI是高速内部时钟,通常为8MHz,而HSE是高速外部时钟,可以是4MHz至26MHz的石英或外部信号。LSI是低速内部时钟,约40kHz,LSE则是32.768kHz的低速外部时钟,常用于实时时钟功能。PLL通过锁相环技术,可以选择HSI或HSE作为输入源,并进行倍频,但推荐的最大输出频率不超过84MHz,以保证系统稳定。 STM32F401的系统时钟SYSCLK可以选取PLL、HSI或HSE。最大系统时钟频率为84MHz,然后通过AHB分频器向多个模块分配不同频率的时钟。AHB分频器可以实现1到512的分频,其输出的时钟供给AHB总线、内核、内存和DMA等使用。同时,它还为Cortex的系统定时器提供时钟,为Cortex的空闲运行时钟FCLK提供时钟,以及为APB1和APB2分频器提供时钟。 APB1分频器的输出供APB1外设(PCLK1,最大42MHz)使用,同时可以为定时器2、3、4、5提供1或2倍频的时钟。而APB2分频器的输出供APB2外设(PCLK2,最大84MHz)使用,以及为定时器1、9、10、11提供1或2倍频的时钟。 在进行STM32F407到STM32F401的代码移植时,开发者需要注意两者的时钟系统配置差异,特别是关于PLL的配置、各模块时钟的分频系数以及时钟源的选择。由于STM32F401可能有更严格的时钟限制,因此需要确保新的配置不会超出其时钟系统的安全范围。此外,还需要检查和适配中断、外设初始化、内存映射等相关代码,以确保它们在新硬件上正常工作。"