Keil5软件新建工程

标准库和hal新建工程

标准库新建工程

1.创建文件工程文件夹结构

首先创建出来一个基本的文件夹结构如下

image

2.给各个文件夹添加对应的文件

2.1 HardWare

存放自己写的硬件驱动相关的代码,这个可以先不放文件。

这里面的代码都是自己写的代码,用于更方便的去调用外设的硬件驱动。这里面的.c文件和.h文件如果分开存放的话可能会更好的管理,但是我用的keil5去编辑的.h文件就不是很好打开去进行编辑,所以就放在一个文件夹下了。

image

2.2 Library

这里面是芯片厂商提供的标准外设库,也就是标准库,我把.h文件放在了Inc文件夹下,.c文件放在了Src文件夹下面。

类别 文件组成 核心定位 核心内容 核心作用 关键依赖 / 特点
中断配置类 misc.h + misc.c 中断通用配置工具 1. 中断优先级分组宏;2. NVIC_InitTypeDef 结构体;3. NVIC_Init () 等中断配置函数 制定所有中断的响应规则(优先级、使能) 1. 无外设依赖;
2. 优先级分组全局仅配置一次
外设功能类 gpio/usart/tim/adc 等.h/.c(除 misc 外所有) 具体硬件外设驱动包 1. 外设专属宏(如 GPIO_Pin_13);2. 外设配置结构体(如 GPIO_InitTypeDef);3. 外设初始化 / 功能函数声明 + 实现 封装寄存器操作,提供控制 1.必须通过 rcc.h 开启对应外设时钟;
2.按外设专属划分

image

image

2.3 Start

这里面存放的都市一些启动文件,注意不要添加多个启动文件,只能有一个启动文件,有多个启动文件会报错。

文件名 作用
core_cm3.c/h Cortex-M3 内核的通用驱动,提供内核寄存器和指令的访问接口
startup_stm32f10x_xx.s 针对不同容量(xl、md、ld 等)STM32F10x 芯片的启动文件,负责设置堆栈、初始化向量表、调用 SystemInit 后进入 main
stm32f10x.h 芯片级寄存器映射和位定义,是所有外设驱动的基础
system_stm32f10x.c/h 实现系统时钟配置(如 PLL、HSE)和系统初始化函数 SystemInit,在启动文件中被调用

image

2.4 System

存放自己封装的一些通用文件,比如延时函数等,这个根据自己的需要来,可有可无。

image

2.5 User

main.c函数可以自己创建一个空白的。

文件名 核心作用
main.c 应用程序入口,包含 main() 函数,是你编写业务逻辑的地方。上电后,启动文件最终会跳转到这里执行。
stm32f10x_conf.h 工程配置开关,通过宏定义(如 #define GPIO)来控制哪些外设驱动头文件被包含进工程,从而精确控制编译范围,减小固件体积。
stm32f10x_it.c 中断服务函数实现,存放所有外设中断(如 EXTI、DMA、定时器)的处理函数,是响应硬件事件的核心。
stm32f10x_it.h 中断函数声明,声明 stm32f10x_it.c 中实现的中断服务函数,供其他文件调用。

代码运行逻辑就是启动文件(.s)→ SystemInit()system_stm32f10x.c)→ main()main.c)。

image

3.新建一个keil5工程

点击Project--->New μVision Project,然后选择你工程的存放位置,也就是工程创建的文件工程文件夹的位置,同时取一个文件名,最好不要使用中文,然后点击保存,之后选择对应的芯片型号,点击OK,弹出的Manage Run-Time Environment窗口可以不用理会,直接×掉即可。

image

image

image

image

4.给keil5工程添加文件和文件夹

点击品字图标,按建立的文件夹结构去添加和命名分组,同时对应组添加相应的文件,如果.c和.h分开存放的话可以只添加.c文件,也可以只添加.c文件,最好按需要或者图添加对应文件。(如果没有看到.h和.s或其他文件是因为文件类型只选择了.c)

image

如有需要可以把.h文件也添加进去,对工程没有影响。

image

可以只添加必要的外设库函数文件,不必全部添加,等用到的时候再来加入。

image

启动文件(.s文件)要按照芯片型号选择,只能选择一个
image

image

image

5.给keil5工程添加头文件路径

点击魔术棒--->c/c++,然后再Define里面加上USE_STDPERIPH_DRIVER,只有定义这个才会有stm32f10x_conf.h。然后点击Include Paths的三个点,把要用到的.h文件存放的路径都添加进去。

image

如何.c和.h分开放到把Inc文件夹路径添加进去就行。

image

6.开始编译

前面的工作都做好之后就可以创建main.c(如果你的User文件夹下没有的话),然后写入如下代码进行编译了。

image

7.Keil5优化

程序下载后自动运行

点击魔术棒--->Debug可以选择使用什么下载器进行下载,然后点击settings--->Flash Download ,勾选Reset and Run,这样你的程序下载之后就会自动复位和执行了。

image

image

keil5高版本自动运行失败解决

但是如果keil5版本高的话就还得去取消那个日志功能,不然你下载后还得按复位键才能正常运行程序。就是点击pack,把那个Enable取消勾选,这样就可以正常下载后就复位执行了。

image

代码提示功能

点击小扳手,然后勾选Symbols after,可以自己设置输入几个字符后出现代码提示。

image

其他的可以自行优化。

Cubemx新建hal库工程

这个就要简单很多了。

先点击File--->New Project,然后选择芯片型号,之后开始工程,配置好时钟树,然后配置相应的外设,就可以去生成代码了。

image

image

image

image

这里最好勾选上。
image

posted @ 2026-02-17 18:44  野云闲出眠  阅读(6)  评论(0)    收藏  举报