基本信息
文件名称:STMicroelectronics 系列:STM32F1 系列_(18).STM32F1系列的系统配置与初始化.docx
文件大小:22.17 KB
总页数:16 页
更新时间:2025-06-18
总字数:约8.08千字
文档摘要

PAGE1

PAGE1

STM32F1系列的系统配置与初始化

在开发基于STM32F1系列微控制器的应用程序时,系统配置和初始化是至关重要的第一步。这一部分将详细介绍如何进行系统的配置和初始化,包括时钟配置、系统时钟源选择、内存配置、外设初始化等。通过这一节的学习,您将能够掌握如何为STM32F1系列微控制器设置合适的环境,以便顺利进行后续的开发工作。

1.时钟配置

STM32F1系列微控制器提供了多种时钟源,包括内部时钟(HSI)和外部时钟(HSE)。时钟配置直接影响系统性能和功耗。本节将详细介绍如何配置这些时钟源,以及如何设置系统时钟频率。

1.1内部时钟(HSI)

内部时钟(HSI)是8MHz的RC振荡器,出厂时已经校准。在大多数情况下,HSI可以用于系统启动和基本操作。以下是一个简单的代码示例,展示如何启用内部时钟。

//启用内部时钟(HSI)

voidEnableHSI(void){

//设置HSI时钟使能位

RCC-CR|=RCC_CR_HSION;

//等待HSI时钟稳定

while(!(RCC-CRRCC_CR_HSIRDY)){

//等待HSI时钟稳定

}

}

1.2外部时钟(HSE)

外部时钟(HSE)可以是4-16MHz的晶体振荡器或外部时钟信号。使用外部时钟可以提高系统的稳定性和精度。以下是一个示例,展示如何启用外部时钟并进行配置。

//启用外部时钟(HSE)

voidEnableHSE(void){

//设置HSE时钟使能位

RCC-CR|=RCC_CR_HSEON;

//等待HSE时钟稳定

while(!(RCC-CRRCC_CR_HSERDY)){

//等待HSE时钟稳定

}

}

1.3系统时钟源选择

系统时钟源可以通过RCC(ResetandClockControl)寄存器进行选择。可以选择HSI、HSE、PLL(Phase-LockedLoop)等作为系统时钟源。以下是一个示例,展示如何选择HSE作为系统时钟源。

//选择HSE作为系统时钟源

voidSelectHSEAsSystemClock(void){

//设置HSE作为系统时钟源

RCC-CFGR|=RCC_CFGR_SW_HSE;

//等待系统时钟源切换完成

while((RCC-CFGRRCC_CFGR_SWS)!=RCC_CFGR_SWS_HSE){

//等待系统时钟源切换完成

}

}

1.4PLL配置

PLL(Phase-LockedLoop)可以用于提高系统时钟频率。通过配置PLL,可以将HSE或HSI时钟频率倍频到更高的频率。以下是一个示例,展示如何配置PLL以将HSE时钟频率倍频到72MHz。

//配置PLL

voidConfigurePLL(void){

//选择HSE作为PLL时钟源

RCC-CFGR|=RCC_CFGR_PLLSRC_HSE;

//设置PLL乘法因子

RCC-CFGR|=RCC_CFGR_PLLMUL9;//倍频9倍

//使能PLL

RCC-CR|=RCC_CR_PLLON;

//等待PLL稳定

while(!(RCC-CRRCC_CR_PLLRDY)){

//等待PLL稳定

}

//选择PLL作为系统时钟源

RCC-CFGR|=RCC_CFGR_SW_PLL;

//等待系统时钟源切换完成

while((RCC-CFGRRCC_CFGR_SWS)!=RCC_CFGR_SWS_PLL){

//等待系统时钟源切换完成

}

}

2.内存配置

STM32F1系列微控制器具有多种内存类型,包括闪存(Flash)、SRAM和系统内存。内存配置对于优化程序性能和数据存储非常重要。本节将详细介绍如何配置这些内存类型。

2.1闪存配置

闪存配置主要包括闪存访问控制寄存器(FLASH_ACR)的设置,以优化闪存的读取速度。以下是一个示例,展示如何配置闪存以提高读取速度。

//配置闪存

voidConfigureFlash(void){