# stm32 **Repository Path**: lujiandi/stm32 ## Basic Information - **Project Name**: stm32 - **Description**: stm32 固件库工程 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-06-19 - **Last Updated**: 2025-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Stm32 标准固件库工程 ## 1. 开发环境 - 开发环境 Keil5+VSCode(Keil Assistant);工程设置需要在 Keil 中完成。 - 标准固件库:STM32F10x_StdPeriph_Lib_V3.6.0。 - Keil5 默认的版本 6 的编译器,固件库支持版本 5 的编译器。 - 工程编码方式 **UTF-8**。 - 调试时修改代码后需要重新编译才生效。 - VSCode 安装插件:`C/C++ Extension Pack`,`Keil Assistant`(CL)。 - `Keil Assistant插件设置:` ![Keil Assistant插件设置](images/KeilAssistant.png) - **keil5 编译器选择**: ![keil5编译器选择](images/keil5_compiler.png) ## 2. 源码结构 > **中断服务程序的函数名**是固定的(在`startup_stm32f10x_md.s`定义了)。 借助标准固件库创建结构如下的工程: ```bash SRC----(源码文件夹) | ├─Startup │ startup_stm32f10x_md.s(汇编启动程序) | ├─CMSIS(内核驱动程序) │ core_cm3.c │ core_cm3.h │ stm32f10x.h(芯片头文件) │ system_stm32f10x.c(SystemInit()函数) │ system_stm32f10x.h | ├─Lib(包含库函数) │ ├─inc │ │ misc.h │ │ stm32f10x_rcc.h | │ ... │ │ │ └─src │ misc.c │ stm32f10x_rcc.c | ... | ├─Basic(包含功能函数|封装库函数) | │ ├─Hardware(包含外部硬件驱动) | │ └─User main.c(用户主程序) stm32f10x_conf.h(包含外设头文件) stm32f10x_it.c stm32f10x_it.h ``` `源码分组:` ![源码分组](images/project-groups.png) `启动文件选择:` ![启动文件选择](images/startup.png) > 不同编译平台的**启动文件**格式不一样。 `工程预定义:` ![预定义](images/project-define.png) - `USE_STDPERIPH_DRIVER, STM32F10X_MD`。 - `STM32F10X_LD` : 表明选择低容量芯(16KB≤FLASH≤32KB)。 - `STM32F10X_MD` : 表明选择中容量芯(64KB≤FLASH≤128KB)。 - `STM32F10X_HD` : 表明选择高容量芯(256KB≤FLASH≤512KB)。 ## 3. 软件仿真 `软件仿真设置:` ![软件仿真debug](images/软件仿真debug.png) `芯片信息:` ![芯片信息](images/芯片信息.png) `仿真查看:` ![软件仿真](images/仿真查看.png) ## 4. Keil 下反汇编 ![Keil 下反汇编](images/Keil下反汇编.png) `keil下: axf文件生成bin、hex 和反汇编代码:` > fromelf 命令: `D:\developer\Keil_v5\ARM\ARM\ARMCC\bin` 添加到系统 path。 ```bash # bin fromelf --bin --output GPIOB.bin GPIOB.axf # hex fromelf --i32 --output GPIOB.hex GPIOB.axf # 反汇编代码 fromelf --text -a -c --output GPIOB.txt GPIOB.axf ```