stm32使用内部RC晶振

本文详细解释了STM32中RCC模块的时钟配置函数,包括SYSCLK、HCLK、PCLK的设置方法,以及如何通过RCC_APB2PeriphClockCmd函数控制APB2外设的时钟使能和禁止。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#define RCC_SYSCLKSource_HSI             ((u32)0x00000000)
/* AHB clock source */
#define RCC_SYSCLK_Div1                  ((u32)0x00000000) // AHB 时钟 = 系统时钟 ;
#define RCC_SYSCLK_Div2                  ((u32)0x00000080) // AHB 时钟 = 系统时钟/2 ;
#define RCC_SYSCLK_Div4                  ((u32)0x00000090) // AHB 时钟 = 系统时钟/4 ;

#define RCC_HCLK_Div4                    ((u32)0x00000500) // APBx 时钟 = HCLK/4 ;

 
/*******************************************************************************
* Function Name  : RCC_Configuration
* Description    : Configures the different system clocks.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void RCC_Configuration(void)

       RCC_HSICmd(ENABLE);//使能内部高速晶振 ;
  RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);//选择内部高速时钟作为系统时钟SYSCLOCK=8MHZ 
RCC_HCLKConfig(RCC_SYSCLK_Div1);//选择HCLK时钟源为系统时钟SYYSCLOCK
  RCC_PCLK1Config(RCC_HCLK_Div4);//APB1时钟为2M
  RCC_PCLK2Config(RCC_HCLK_Div4);//APB2时钟为2M
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);//使能APB2外设GPIOB时钟
}


/*******************************************************************************
* Function Name  : RCC_HSICmd
* Description    : Enables or disables the Internal High Speed oscillator (HSI).
*                  HSI can not be stopped if it is used directly or through the
*                  PLL as system clock.
* Input          : - NewState: new state of the HSI.
*                    This parameter can be: ENABLE or DISABLE.
* Output         : None
* Return         : None
* 功能           : 使能或者失能内部高速晶振(HSI)
*******************************************************************************/
void RCC_HSI

### 回答1: STM32F1系列芯片是具有高性价比的ARM Cortex-M3内核微处理器,内部晶振频率为8MHz,可以通过配置寄存器来使用内部晶振程序。使用内部晶振有以下几点好处: 1. 减少硬件成本:使用内部晶振程序可以节省外部晶振器的成本,尤其适合一些成本敏感的产品和小批量生产的场景。 2. 简化电路设计:使用内部晶振程序可以减少电路板上的元器件数量,简化电路设计,提高电路板的可靠性。 3. 减少PCB面积:少用几个元器件,能给PCB面积带来极为可观的降低。 4. 减少功耗:相比于外部晶振器,使用内部晶振能降低芯片的功耗,因为没有晶振驱动电路的额外负载。 但是,使用内部晶振也存在一些弊端: 1. 精度受环境影响:由于受环境温度、电压等因素的影响,内部晶振精度相较于外部振荡器较低,故若要实现更高的精度,需要选择更精准的时钟源。 2. 异频模式要自己实现:由于没有外部时钟源,内部晶振在异步通信中不能与外部时钟同步,需要在软件中特殊处理。 综上所述,对于一些应用程序需求较高的场景,需要使用外部晶振。如果是一些成本敏感、量产需求不高的场景,则可以使用内部晶振。 ### 回答2: STM32F1系列微控制器经过优化,采用了内部低功耗RC晶振,可取代传统的外部晶振。这种设计可以显著简化电路设计,减少外部器件的占位面积,提高系统可靠性和降低成本。STM32F1内部晶振的频率与核心时钟相同,可提供稳定的时钟信号,适用于多种工作模式下的应用场景。 在使用STM32F1内部晶振时,需要在软件编程中设置晶振的参数。首先,用户需要了解芯片的时钟结构和工作原理。然后,使用STM32的时钟配置单元设置内部晶振的频率,并将外设时钟分频器配置为适当的值。在系统初始化时,需要使用时钟初始化函数来启动内部晶振,以提供稳定的时钟信号。 在确定内部晶振的频率时,用户可以根据系统需求选择不同的内部晶振频率,最大可达到72MHz。在访问外部存储器或与外部设备通信时,用户需要根据实际需求设置合适的时钟分频器。内部晶振使用可以带来更加简洁的电路设计、更高的系统可靠性和更低的成本,以及更简单的软件编程过程。 ### 回答3: 在STM32F1中,可以选择使用内部RC振荡器作为系统时钟源,这比使用外部振荡器更便宜,更方便。使用内部RC振荡器作为时钟源的主要缺点是其稳定性低于使用外部晶体时钟源。内部RC振荡器的稳定性受到温度和电源电压的影响,该内部RC振荡器的频率随温度的变化可能会超过10%。然而,如果可以接受一些误差,那么内部RC振荡器仍然是一个合理的选择,特别是在成本敏感的应用中。 要在STM32F1中使用内部RC振荡器,必须在RCC寄存器中配置时钟源。默认情况下,时钟源设置为高速外部晶体振荡器,可以通过设置位0和位1从HSI模式切换到另一种模式。将位0和位1都设置为1时,使RCC使用HSI振荡器作为系统时钟源。当使用HSI时,系统时钟频率为8MHz。 总之,STM32F1使用HSI内部RC振荡器程序非常方便和经济,但是在某些关键应用中,外部晶体振荡器应该作为时钟源以确保更好的稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值