0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

stm32f103启动配置

分享:

STM32F103 的启动配置主要涉及 启动模式选择启动文件初始化,以下是关键要点:


1. 启动模式选择

STM32F103 通过 BOOT0BOOT1 引脚电平决定启动位置:

BOOT1 BOOT0 启动模式 用途
0 0 主闪存存储器(Main Flash) 默认模式,用户程序通常烧录在此
0 1 系统存储器(System Memory) 内置 Bootloader,用于串口/USB下载程序
1 1 内置SRAM 调试阶段临时运行代码,掉电丢失

硬件配置方法

  • 通过跳线帽或电路设置 BOOT0 和 BOOT1 引脚电平。
  • 程序正常运行时,一般配置为 BOOT0=0, BOOT1=0(从主闪存启动)。

2. 启动文件(Startup File)

启动文件(如 startup_stm32f10x_hd.s)负责初始化硬件环境,包括:

  • 堆栈(Stack/Heap)初始化:定义堆栈大小(在 .s 文件中修改)。
  • 中断向量表:定义异常和中断处理函数的入口地址。
  • 复位处理:跳转到 SystemInit() 初始化时钟,最终调用 main() 函数。

关键文件选择

  • 根据 Flash 容量选择对应的启动文件:
    • startup_stm32f10x_ld.s:小容量(16-32KB)
    • startup_stm32f10x_md.s:中容量(64-128KB)
    • startup_stm32f10x_hd.s:大容量(256-512KB)
    • startup_stm32f10x_xl.s:超大容量(≥512KB)

3. 时钟配置

SystemInit() 函数(位于 system_stm32f10x.c)中完成时钟初始化:

  • 默认使用内部 8MHz RC 振荡器(HSI),通过 PLL 倍频到 72MHz。
  • 若需使用外部晶振(HSE),需修改代码:
    // 在 system_stm32f10x.c 中启用 HSE
    #define SYSCLK_FREQ_72MHz
    // 并确保 RCC 配置中启用 HSE 和 PLL

4. 用户程序入口

启动流程:

  1. 复位后从 0x00000000(Flash 起始地址)读取初始堆栈指针(SP)。
  2. 跳转到 Reset_Handler,执行以下操作:
    • 调用 SystemInit() 初始化时钟。
    • 复制数据段(.data)到 RAM,清零 .bss 段。
    • 进入 main() 函数。

常见问题

  1. 程序无法启动

    • 检查 BOOT 引脚电平是否正确。
    • 确认启动文件是否与芯片 Flash 容量匹配。
    • 检查时钟配置是否正确(如外部晶振未启振)。
  2. 调试模式配置

    • 使用 SRAM 启动(BOOT0=1, BOOT1=1)时,需通过调试器(如 ST-Link)加载程序。

代码示例(时钟初始化片段)

void SystemInit(void) {
  // 启用外部晶振(HSE)并配置 PLL 到 72MHz
  RCC->CR |= RCC_CR_HSEON;      // 开启 HSE
  while (!(RCC->CR & RCC_CR_HSERDY)); // 等待 HSE 就绪
  RCC->CFGR |= RCC_CFGR_PLLMULL9 | RCC_CFGR_PLLSRC_HSE; // PLL 9倍频
  RCC->CR |= RCC_CR_PLLON;      // 开启 PLL
  while (!(RCC->CR & RCC_CR_PLLRDY)); // 等待 PLL 就绪
  RCC->CFGR |= RCC_CFGR_SW_PLL; // 切换系统时钟到 PLL
}

通过以上配置,STM32F103 即可正确初始化并运行用户程序。

stm32f030和stm32f103功能差异

stm32f030和stm32f103功能差异主要表现在哪?

2021-07-22 09:35:47

STM32F103启动文件是如何启动

STM32F103启动文件的作用是什么?STM32F103启动文件需要完成的工作有哪些?

倪love 2021-10-27 07:40:34

ch32v103stm32f103的区别

ch32v103stm32f103的区别  Ch32v103STM32f103是两种不同的芯片,虽然它们都是基于ARM Cortex-M3内核的32位微控制器,但它们在硬件配置、功能、性能等方面

2023-08-22 15:49:00

STM32CubeIDE下配置STM32F103输出带死区的互补PWM波

STM32F103的TIM1和TIM8是高级定时器,可以产生嵌入死区时间的互补PWM波,使用STM32CubeIDE完成相关配置,可以直接生成代码,输出带死区的PWM波。

2023-11-01 09:41:07

ARM系列STM32F103芯片的解密方法

破解STM32F103芯片的方法

2023-09-19 09:03:40

学习STM32F103的DAC功能

三勺最近在学习STM32F103的DAC功能,本文主要解释在配置DAC寄存器实现相应功能时遇到的一些问题。

2023-10-24 16:00:10

STM32F103 GPIO内部电路图讲解

STM32F103 GPIO内部电路图讲解

2023-02-01 16:32:14

基于STM32F103单片机的矩阵按键设计

本实验使用STM32F103单片机,主题代码通用的。

2022-12-09 17:18:46

STM32F103启动模式怎么设置?

STM32F103启动模式怎么设置?

风尚男人 2021-11-30 07:00:14

如何对STM32F103 ADC寄存器进行配置

STM32F103系列有几个ADC?STM32F103系列的ADC主要特征有哪些?如何对STM32F103 ADC寄存器进行配置

绝代双骄 2021-09-27 09:08:10

学习STM32F103的定时器功能

三勺最近在学习STM32F103的定时器功能,本文主要解释在配置通用、基本、高级定时器寄存器实现相应功能时遇到的一些问题。

2023-10-24 15:49:29

STM32F103VET6

2024-04-30 10:50:55

如何解决STM32F103配置时钟的问题?

如何解决STM32F103配置时钟的问题?

唯爱萌meng 2021-12-17 06:30:02

stm32f103 flash模拟eeprom

STM32F103是意法半导体(STMicroelectronics)推出的一款32位单片机系列,该系列芯片具有高性能和丰富的外设接口,广泛应用于工业控制、消费电子、汽车电子等领域。其中

2024-01-09 11:21:36

ARM系列STM32F103芯片的解密方法

本文介绍ARM系列STM32F103芯片的解密方法,其内核是Cortex-M3,内存从16K-512K都有。

2024-02-28 11:20:34

如何对STM32F103的串口进行中断配置

如何对STM32F103的串口进行初始化呢?如何对STM32F103的串口进行中断配置呢?

K_Ming 2021-12-13 07:31:19

学习STM32F103的ADC功能

三勺最近在学习STM32F103的ADC功能,居然连最简单的独立模式的单通道的电压采集都不能实现,这就不能忍了,这是对智商的侮辱。

2023-10-24 16:06:03

STM32F103 PWM输出配置有哪些步骤呢

PWM是什么?STM32F103 PWM输出比较模式有哪几种?STM32F103 PWM输出配置有哪些步骤呢?

wo4456 2021-11-15 07:52:12

STM32F103启动文件 精选资料分享

、BLX2.11、BX2.12、TEMPORT2.13、B2.14、IF,ELSE,ENDIF2.15、END三、keil自带的汇编语言帮组文档四、堆栈五、复位程序一、概述STM32F103启动文件STM32F103启动文件是由汇.

倪love 2021-08-05 07:50:31

NANO STM32F103

NANO STM32F103 DEVB_60X100MM 5V

2023-03-28 13:06:25

基于STM32F103的三相变频器方案设计

成熟三相变频器方案,基于STM32F103设计开发: 原理图和PCB源文件(AD软件)。 BOM清单 基于STM32F103控制源代码工程文件(keil) 软件硬件设计详细说明 责任编辑:xj 原文

2020-12-07 10:33:38

芯片短缺如何用HK32F103换掉STM32F103

本篇笔记主要记录因为芯片短缺,使用HK32F103换掉了STM32F103的过程和注意事项。 准备工作 准备之前的STM32F103工程。 测试准备 芯片更换 因为今年F103的价格炒的飞高,之前用

2021-11-01 14:14:48

stm32f103的中断服务函数在启动文件

stm32f103的中断服务函数在启动文件:***startup_stm32f10x_md.s***处

caokyo 2021-08-24 06:47:10

星翼电子:精英STM32F103开发板资源描述

精英STM32F103开发板资源描述和产品具体信息了解。

2019-10-15 09:51:00

STM32F103启动文件到底是什么?

STM32F103启动文件到底是什么?

jjll652 2021-12-14 07:44:09

STM32F103系统启动步骤是怎样的?

STM32F103系统启动步骤是怎样的?

dahairenlyy 2021-11-29 06:23:00

STM32F103系统时钟是如何进行配置

STM32F103系统时钟配置时钟树的理解确定分频倍频之后再做STM32F103时钟树假设外接晶振8MHz,现在需要配置出系统72MHz时,需要配置代码(外部晶振8MHz配置系统时钟为72MHz

飘逸的D 2021-08-18 08:01:11

STM32F103时钟配置流程 精选资料分享

STM32F103时钟配置流程转载链接STM32F103时钟配置流程http://www.51hei.com/bbs/dpj-109332-1.html(出处: 单片机论坛)前言:一般情况下

goodmbby 2021-08-12 07:39:16

STM32F103单片机时钟树结构图及时钟配置

STM32属于Cortex-M3内核的单片机,时钟结构比之前的51单片机较复杂的多,根据数据手册,STM32F103的时钟结构如下图所示。

2023-01-19 16:36:00

STM32F103入门系列

+GPIOx_LCKR作用和配置STM32F103五分钟入门系列(三)GPIO的常用库函数使用方法总结+一个网络上的误区参考:51单片机(四)定时器中断(+数码管—24小时制钟表)STM32F103五分钟入门系列(八)SysTick滴答定时器+SysTick中断实现跑马灯STM32F103五分钟入门系列(

胡政鹏邮箱 2021-08-17 09:03:47

加载更多