stm32F10系列默认外接 8M ,将HSE配置为系统时钟

本文介绍如何使用STM32F10系列固件库函数将外部高速振荡器(HSE)配置为系统时钟源,并通过PLL倍频设置系统时钟频率。文中提供了一个具体的实现函数HSESysClk_Config,详细展示了从启动HSE到最终配置系统时钟的全过程。

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

stm32F10系列默认外接 8M ,用固件库函数将HSE配置为系统时钟,学习分享,希望对大家有所帮助!


/*******************************************************************************

* Function Name  :  HSESysClk_Config
* Description    : 
* Input          :  
* Output         :   HSEÅäÖÃϵͳʱÖÓ
* Return         : 
*******************************************************************************/
void HSESysClk_Config(uint32_t RCC_PLLMul_x)
{
ErrorStatus   HSEstatus;


  RCC_DeInit();   //¸´Î»ºóºóÐøµÄÅäÖòſÉдµ½¼Ä´æÆ÷
RCC_HSEConfig(RCC_HSE_ON);    //
HSEstatus = RCC_WaitForHSEStartUp();    

if(HSEstatus == SUCCESS)
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);    //Ԥȡֵ
FLASH_SetLatency(FLASH_Latency_2);

RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PCLK2Config(RCC_SYSCLK_Div1);

RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_x);     //ÅäÖÃPLLʱÖÓ ¸ù¾Ý±¶ÆµÒò×ÓÅä
RCC_PLLCmd(ENABLE);  //ʹÄÜ PLL

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);   //µÈ´ý×¼±¸ºÃ
 
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//ÅäÖÃϵͳʱÖÓΪ PLL
 
    while(RCC_GetSYSCLKSource() != 0x08);     //¼ì²âʱÖÓÔ´  0x08  PLL clock
}
else
{
//Èç¹ûHSEÆô¶¯Ê§°Ü£¬¿É¼Ó´íÎó´¦Àí
  }

}





要注意选 的 (STM32FL0X_XX)系列,可以打开对应的宏定义!




上图stm32 的 MCO 引脚可以进行配置用示波器测试配置的时钟是否正确!




### 嘉立创EDA STM32F10C8T6 最小系统板设计教程 #### 电路图概述 STM32F103C8T6 是一款基于 ARM Cortex-M3 内核的微控制器,广泛应用于嵌入式项目中。其最小系统板通常包括电源管理模块、时钟源、复位按钮以及调试接口等基本组件[^1]。 以下是使用嘉立创 EDA 进行 STM32F103C8T6 最小系统板设计的主要部分: --- #### 1. **核心芯片配置** STM32F103C8T6 的 LQFP48 封装需要连接必要的外围设备来实现稳定工作。具体如下: - **供电电压**: 需要提供 3.3V 和 GND 接口。 - **复位引脚 (NRST)**: 外接一个按键开关和下拉电阻至 GND。 - **BOOT 引脚**: BOOT0 设置为低电平以进入正常模式,通过上拉电阻连接到 VDD。 - **晶振电路**: 使用 8MHz 晶体震荡器作为 HSE 输入,并外接两个 20pF 负载电容[^2]。 ```plaintext OSC_IN ----|<----->|----> VCC | | XTAL C1 | | OSC_OUT ---|<----->|----> GND C2 ``` --- #### 2. **LED 流水灯实验设计** 在 Proteus 中模拟 LED 流水灯实验时,需定义 GPIO 输出端口并初始化相应的寄存器。以下是一个简单的代码片段用于点亮 LED: ```c #include <stm32f10x.h> int main(void) { RCC_APB2ENR |= (1 << 3); // 打开GPIOB的时钟 GPIOB_CRL &= ~(0xF << (4 * 0)); // 清除PB0的功能选择位 GPIOB_CRL |= (0x2 << (4 * 0)); // 设置PB0为推挽输出模式 while (1) { GPIOB_ODR ^= (1 << 0); // 切换PB0的状态 for (volatile int i = 0; i < 1e6; i++); // 延时循环 } } ``` 此代码实现了 PB0 上的 LED 定期闪烁效果[^1]。 --- #### 3. **常见问题排查** 当设计 PCB 板时可能会遇到一些硬件故障,例如 LED 不亮或者 CAN 总线通信失败等问题。这些问题可能由以下几个方面引起: - 地址冲突:如果多个器件共享同一地址,则可能导致数据传输错误[^3]。 - 错误焊接:检查是否有短路或虚焊情况发生。 - 电源分配不当:确认所有元件都获得足够的电流供应。 --- #### 4. **嘉立创EDA工具应用指南** 利用嘉立创在线平台完成电路绘制流程如下: 1. 登录官网创建新工程; 2. 添加所需元器件库(如 STMicroelectronics 提供的标准模型); 3. 绘制连线关系确保电气规则无误; 4. 导出 Gerber 文件提交制造订单。 此外还可以借助该软件内置仿真功能验证设计方案可行性,在实际打样前发现潜在缺陷从而降低成本风险。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值