一、为什么自己写一个一个教程 1、老了,容易忘
2、总看别人的不方便
二、准备资料 1、keil软件安装好
2、STM32F0XX标准库函数下载,网址为https://www.st.com/en/embedded-software/stsw-stm32048.html
本篇使用STM32F030C8T6芯片
文章图片
下载后解压,得到STM32F0xx_StdPeriph_Lib_V1.5.0这个文件夹,文件夹内容包括内核、驱动、开机引导文件等库文件。文件结构见下:
文章图片
完事具备,只欠东南西北台风。
三、建立文件夹 本示例使用Template作为工程文件夹名字,并在文件夹下,建立以下四个文件夹:
文章图片
文件夹解释:
Doc:存放程序的说明文件
Libraries:存放标准库相关文件
Project:存放工程文件、输出HEX文件、其它产生的文件
User:main以及其他用户文件
文件结构确定后,将STM32F0xx_StdPeriph_Lib_V1.5.0对应文件,放入新建立的文件夹中:
a. 将STM32F0xx_StdPeriph_Lib_V1.5.0\Libraries中的CMSIS 和STM32F0xx_StdPeriph_Driver两个文件夹复制到工程模板Libraries文件夹下:
文章图片
b. 将STM32F0xx_StdPeriph_Lib_V1.5.0\Projects\STM32F0xx_StdPeriph_Templates中的几个文件复制到工程模板User 文件夹下:
文章图片
其它文件夹暂时为空。
四、建立工程 1. 打开keil软件,选择Project --> New uVision Project,确认后,工程名字使用Template,保存到文件夹Temppate/Project下。
文章图片
文章图片
2. 选择芯片型号,本文使用STM32F030C8T6,所以选择对应芯片,保存。如果没有对应选择,需要下载相应芯片的pack
文章图片
确定后出现管理运行环境界面,不用设置,关闭即可。
文章图片
3. 添加组文件夹,以及文件
点击菜单栏上的管理工程项目图标,进入管理工程项目界面
文章图片
在Groups中添加5个组文件夹,再将文件添加到每个组文件夹中,操作方法如下,
文章图片
具体文件清单:
StartUp
startup_stm32f030.s
位置:Template\Libraries\CMSIS\Device\ST\STM32F0xx\Source\Templates\arm
CMSIS
system_stm32f0xx.c
位置:Template\Libraries\CMSIS\Device\ST\STM32F0xx\Source\Templates
Libraries
Template\Libraries\STM32F0xx_StdPeriph_Driver\src 文件夹下的.c文件
可根据自己项目需要选择添加,这里暂时全部添加
User
main.c
stm32f0xx_it.c (中断函数文件) 和其它用户自己编写的文件
Doc
添加说明文件,自己添加
单击后完成,工程文件显示如下:
文章图片
【STM32|如何建一个STM32F030标准库工程模板】4. 配置工程:
点击菜单栏上图标,进入工程选项卡界面
文章图片
a. 串口输出时使用,这里需要勾选
文章图片
b. 输出文件HEX选项
文章图片
c. C/C++选项卡中添加处理宏,根据自己芯片型号填入,否则会报错。这边添加两个宏:
USE_STDPERIPH_DRIVER,
STM32F030
文章图片
d. 添加头文件路径,点击打开“Include Paths”界面,按下图添加路径
文章图片
文章图片
e. DEBUG选项卡仿真器选择,根据你用的仿真器进行选择,我这里使用JLink仿真,故选择J-Link
文章图片
进入仿真器设置,SW,2MHZ烧录,以及下载相关内容
文章图片
文章图片
完成后点确定,点OK退出会保存选项设置。
至此,所有工作就完成了。
编译,底部Build Output显示无错误,无警告。说明工程模板没有问题
文章图片
文章图片
以上,工程模板已经建立
推荐阅读
- stm32|基于STM32和freeRTOS智能门锁设计方案
- 日常分享|共享充电宝方案原理,具体部件组成以及主控MUC参数
- #|ARM裸机开发(汇编LED灯实验(I.MX6UL芯片))
- UE4虚幻4学习|制作血条/蓝条/蓄力条等进度条(Progress Bar)
- STM32|STM32的四种IO输出模式
- STM32 远程升级(ISP / IAP)
- stm32|stm32f103can总线过滤器配置
- STM32CubeMX配置SDIO模式(非DMA方式)
- STM32 时钟RCC相关配置参考stm32f10x_rcc.h