STM32F10x的系统初始化 SystemInit()

这篇博客详细介绍了STM32F10x在无操作系统环境下上电后的系统初始化过程,主要涉及SystemInit()函数的实现。通过解析官方提供的代码,阐述了如何设置内部8MHz RC振荡器、时钟分频系数以及清除相关中断标志,为后续的系统时钟配置做准备。

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

对于无操作系统的软件来说,STM32上电后的第一件事,就是系统初始化。

Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c 中,官方给出了系统初始化函数 SystemInit(),我添加了一些中文注释,便于学习、模仿。

/**
  * @brief  Setup the microcontroller system
  *         Initialize the Embedded Flash Interface, the PLL and update the 
  *         SystemCoreClock variable.
  * @note   This function should be used only after reset.
  * @param  None
  * @retval None
  */
void SystemInit (void)
{

  /* Reset the RCC clock configuration to the default reset state(for debug purpose) */
  /* Set HSION bit */
  
  RCC->CR |= (uint32_t)0x00000001;    // 打开内部的 8MHz RC 振荡器, 使能内部高速时钟(HSI)

  /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */
#ifndef STM32F10X_CL
  RCC->CFGR &= (uint32_t)0xF8FF0000;
#else
    // MCO         = 000:     MCO 引脚设置成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值