STM32从0到1创建工程 保姆级教程(上)

一、准备工作

本文使用Keil5软件以STM32F103ZET6为例进行工程创建,需要有STM固件库
在这里插入图片描述在这里插入图片描述

二、具体步骤

2.1打开keil5软件,点击菜单栏的project,在下拉菜单中选择New uVision Project。

在这里插入图片描述
之后弹出工程保存的位置。
在这里插入图片描述
这里点击新建文件夹,创建一个文件夹保存此次的工程。
在这里插入图片描述
创建好文件夹后,双击文件夹进入,并在②处输入此次工程的名字,点击保存。
在这里插入图片描述
弹出下面对话框,依次展开到STM32F103,下滑选择STM32F103ZE(这里可以根据自己的单片机型号自行选择)。
在这里插入图片描述

在这里插入图片描述
点击OK,弹出下面对话框,直接关闭即可。
在这里插入图片描述
你就得到了这样的一个界面,至此便完成了创建工程的第一步。
在这里插入图片描述

2.2打开test文件夹,如果上面的操作没有问题,你将看到下面的内容。

在这里插入图片描述
在此处创建startup文件夹,library文件夹,user文件夹,后期根据需求可创建hardware文件夹,app文件夹。
在这里插入图片描述
打开STM32固件库,选择libraries>CMSIS>CM3>CoreSupport中的两个文件,复制到test中的startup文件夹下。
在这里插入图片描述
在这里插入图片描述
选择Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x中的三个文件,复制到test中的startup文件夹下。
在这里插入图片描述
选择Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm中所用单片机对应的启动文件,复制到test中的startup文件夹下,我的单片机型号是STM32F103ZET6,所以我选hd.s(如果不知道可以参考这篇文章,实在搞不清的话就全复制走)
在这里插入图片描述
至此,startup文件夹里的文件全部到位。
在这里插入图片描述
接下来,将\Libraries\STM32F10x_StdPeriph_Driver\inc下的所有文件复制到test里的library中。
在这里插入图片描述
然后,将\Libraries\STM32F10x_StdPeriph_Driver\src下的所有文件也复制到test里的library中。
在这里插入图片描述
至此,library文件夹也准备完毕。
在这里插入图片描述
最后,打开固件库中project文件夹
在这里插入图片描述
将Project\STM32F10x_StdPeriph_Template文件夹下的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h复制到test文件夹下的user里
在这里插入图片描述
至此,所有前置工作准备完毕。接下来该进行keil里的配置了。请参考这里

### 如何在Keil5中创建新的STM32工程项目 #### 工程文件夹结构设计 为了便于管理和维护,建议按照推荐的方式构建工程目录。例如,可以创建一个名为`STM32Project`的一文件夹,并在其内部按需划分多个子文件夹来存储不同类型的文件[^1]。 #### 安装必要的开发资源 在正式创建工程之前,需要确保已安装以下两项重要资源: 1. **Keil开发包**:针对所使用的芯片型号(如STM32F103VCT6),下载并安装对应的Keil开发包。这一步可以通过官方文档中的链接完成[^2]。 2. **标准外设库**:下载适用于目标芯片的标准外设库(如`STM32F10x_StdPeriph_Lib_V3.6.0`),并将其中的关键文件复制到工程目录下。 #### 创建工程的具体步骤 以下是基于Keil5环境的新工程创建流程: 1. 打开Keil5软件后,通过菜单栏选择 `New Project...` 来启动新建工程向导。 2. 在弹出的对话框中输入工程名称(如`Demo3`),指定其保存路径为预先准备好的文件夹位置,随后点击“Save”按钮确认设置。 3. 接下来会进入单片机型号的选择界面。对于STM32系列微控制器而言,应在列表里找到确切匹配的目标器件型号;如果未能直接查得,则挑选相近兼容项作为替代方案[^4]。 4. 配置编译器选项时,默认接受初始设定通常已经足够满足大多数应用场景的需求。不过仍可根据实际需求调整某些特定参数配置,比如优化别、堆栈大小定义等细节部分。 5. 将先前获取的标准外设库相关头文件以及源码模块加入当前项目之中。具体操作方法涉及右键点击左侧导航树形视图内的各个分组节点(Headers/Sources/Include etc.),接着选取Add Existing Files to Group命令实现关联绑定功能. 6. 对于调试接口的支持也需要额外关注一下,尤其是当计划利用JTAG或者SWD模式连接硬件设备来进行在线仿真测试的时候更是如此. ```c // 示例代码片段展示如何初始化GPIO端口 #include "stm32f1xx.h" void GPIO_Init(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStruct); } ``` 上述示例展示了简单的GPIO初始化过程,它属于典型应用案例之一,有助于理解整个框架搭建后的基本编程实践。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值