网站首页 > 编程文章 正文
STM32 工程模板没有统一的格式,可以参考 ST 官方的示例模板或者根据自己的开发经验和使用习惯总结。
Project Template
文档以库函数工程模板为例,HAL 库工程模板对应参考即可。
Official Project Template
ST 发布的标准外设库 (STM32 Standard Peripheral Libraries) 中都会包含示例工程模板。以笔者正在使用的 STM32L151RET6 为例,截止在写这篇文档的时候最新的版本为 1.4.0。
示例工程模板路径为 en.stsw-stm32077_v1-4-0\
STM32L1xx_StdPeriph_Lib_V1.4.0\Project\
STM32L1xx_StdPeriph_Templates。用 KEIL v5 打开后如下:
整个工程被分为了 4 部分:
- User
- StdPeriph_Driver
- CMSIS
- MDK-ARM
User 下是一些和用户有关的源文件;StdPeriph_Driver 下是标准外设库源文件;CMSIS 下是和系统有关的源文件(主要是和系统时钟有关);MDK-ARM 下是启动文件。
Custom Project Template
参考 ST 官方示例模板,自定义工程模板一般包含 6 个目录,一个批处理文件,一个说明文档:
- Core:存放和系统有关的源文件
- Doc:存放文档
- Driver:存放用户基于标准外设库编写的外设驱动源文件
- Libraries:存放 CMSIS 和 STM32L1xx_StdPeriph_Driver,这 2 个目录均来自标准外设驱动库
- Project:存放 KEIL 工程有关的文件
- User:存放用户代码
- Clean.bat: 清理 KEIL 编译过程中产生的临时文件
- Readme.txt: 记录信息,典型信息是版本更迭记录
Clean.bat 内容如下:
del /Q Project\*.bak
del /Q Project\*.dep
del /Q Project\JLink*
del /Q Project\*.scvd
del /Q Project\*.user
del /Q Project\Objects\*.dep
del /Q Project\Objects\*.lnp
del /Q Project\Objects\*.htm
del /Q Project\Objects\*.o
del /Q Project\Objects\*.d
del /Q Project\Objects\*.crf
del /Q Project\Objects\*.iex
Core 目录下包含 5 个文件,这 5 个文件对应 ST 官方示例模板中的文件:
- startup_stm32l1xx_hd.s
- stm32l1xx_conf.h
- stm32l1xx_it.c
- stm32l1xx_it.h
- system_stm32l1xx.c
其中启动文件 startup_stm32l1xx_hd.s 要根据使用的 MCU 的 Flash 大小区分,笔者使用的 STM32L151RET6 的 Flash 的大小为 512KB,所以这里选择 高密度 类型的启动文件。
Libraries 目录下暂时只有 CMSIS 和
STM32L1xx_StdPeriph_Driver 连个目录,这两个目录均拷贝于标准外设驱动库
User 目录下包含 2 个文件,这 2 个文件对应 ST 官方示例模板中的文件:
- main.h
- main.c
整个自定义工程模板如下:
KEIL Settings
Target
- ARM Compiler: Use default compiler version 5
- Use MicroLIB: Enable
- IROM1: Start - 0x08000000, Size - 0x8000 (根据 MCU 配置)
- IRAM1: Start - 0x20000000, Size - 0x14000 (根据 MCU 配置)
Output
C/C++
Define 定义以下两个宏:
- USE_STDPERIPH_DRIVER:表示使用标准库函数
- STM32L1XX_HD:表示使用的是 STM32L1 系列高密度类型的芯片
STM32L1XX_HD 是根据所使用的芯片来的,参考对应工程的 stm32l1xx.h 头文件,里面会有宏的定义。其它型号的 MCU 参考即可:
#if !defined (STM32L1XX_MD) && !defined (STM32L1XX_MDP) && !defined (STM32L1XX_HD) && !defined (STM32L1XX_XL)
#error "Please select first the target STM32L1xx device used in your application (in stm32l1xx.h file)"
#endif
C99 Mode:Enable
Include Paths: 指定包含的头文件路径
Debug
仿真器选择对应的即可。
User
设置编译后产生 bin 文件。
命令:fromelf --bin -o "$L@L.bin" "#L"
Note
对于启动文件 startup_stm32l1xx_hd.s 来说,可以直接拷贝 ST 官方示例模板中的文件,也可以通过 KEIL 自带的包管理直接下载。
下载成功后显示绿色
不过对比 KEIL 下载的 startup_stm32l151xe.s 和拷贝于 ST 官方示例模板中的启动文件 startup_stm32l1xx_hd.s 发现,KEIL 自动下载的启动文件日期为 11-July-2014,拷贝于 ST 官方示例模板中的启动文件日期为 17-November-2021。所以建议一般还是直接从 ST 官方示例模板中拷贝文件。
猜你喜欢
- 2025-05-21 单片机编程用什么软件?单片机开发软件有哪些?
- 2025-05-21 STM32 开发环境用哪个呢?MDK和IAR那个比较好?结合JLINKV8 的话。
- 2025-05-21 学习stm32单片机,必备工具和软件,你知道几个?华维建议收藏
- 2025-05-21 快速移植大容量STM32单片机的方法
- 2025-05-21 LittlevGL在STM32上的移植使用
- 2025-05-21 零基础学习STM32智能家居系统之STM32模板程序解读
- 2025-05-21 「基于NUCLEO-F746ZG电机开发应用」2.基于SDK5.4.5-工程构建
- 2025-05-21 STM32F030基于LL库的最小软件工程
- 2025-05-21 Keil界面模糊,怎样设置高清界面?
- 2025-05-21 RTOS从入门到精通-基于FreeRTOS
你 发表评论:
欢迎- 最近发表
-
- 90岁老人科目三一把过火爆网络!考驾照、爱美甲……这群“90后”比年轻人潮
- DNF:遗忘之地任务流程,适用于新手起小号,装备修理白漂
- dnf手游:“首款流拍宝珠”,6位玩家眼睁睁看着500万泰拉丢失!
- dnf手游:小熊卡正式升级!可附魔到工会勋章,千万别卖!
- dnf手游:首张“涨抗魔”粉卡火了!以前3万没人要现在准备断货!
- dnf手游:团本币增加!3月26号打团有坑提前避开,浪费门票?
- dnf手游:涨价20倍!曾经没人要的,如今已是妥妥的T0材料!
- dnf手游:“官方鼓励回归”火了,白送玩家+20装备和王子卡等!
- dnf手游:无根之源千万别用!竞拍系统一定要抢否则错过崛起机会
- dnf手游:DNF手游各职业技能加点攻略、装备推荐!小白一看就会
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)