【STM32】基于固件库开发新建工程

一、基于寄存器 —— 与51类似,直接配置寄存器

二、基于标准库(库函数)—— 使用ST官方提供的封装好的配置寄存器的库函数

三、基于HAL库 —— 图形化配置初始工程 ,CubeMX...

 

标准外设库下载,登录ST官网www.ST.com

 使用什么型号的芯片就选择哪个,

传送门 ,,https://www.st.com/zh/embedded-software/stm32-standard-peripheral-libraries.html

解压下载到的压缩包,得到标准外设库

展开目录如下,

 

Libraries —— 库函数文件,

  CMSIS

  STM32F10x_StdPeriph_Driver

Project —— 官方提供得工程示例和模板

Utilities —— STM32官方评估板的相关例程

 

1. 创建工程存放的文件夹

  本地路径合适的地方创建文件夹test

2. 在文件夹中新建工程

  打开keil软件,点击工程project -> New uVision Projcet,然后选择刚才创建的文件夹test,工程命名Project,可自定义,点击保存。

3. 选器件型号

  若没有器件型号,到官网下载相应的器件包安装即可,https://www.keil.arm.com/packs/?q=stm

 

 点击OK即可得到个空工程,

4. 给空工程添加启动文件 + 内核/寄存器映射文件,,

  在本地工程文件下新建一个start文件夹,将之前下载的标准库中的启动文件,寄存器描述文件复制到start文件夹。

  startup_......  —— 启动文件,什么型号的芯片就用什么启动文件  

  stm32f10x.h —— stm32外设寄存器描述文件,描述stm32有那些寄存器和对应的地址,类似与51单片机的头文件reg52.h

  system-stm32f10x.c/h —— 系统配置,如时钟

  

  在keil中修改组名字为start,右键点击添加现有文件add existing files to ...,添加start文件夹中的文件。Add以后Close。

   在工程选项里添加文件夹的头文件路径,供软件找到.h文件,

   

  在本地工程新建一个文件夹User,在keil工程中新建组User,右键,添加新文件add new item .. 新建main.c ,路径要选择User文件夹,

   main.c中写个死循环,编译检查没问题,到现在可以算是基于寄存器开发来创建工程,还没有添加库函数,可以通过配置寄存器的值来控制stm32 ,

 基于固件库开发如下操作,

在本地工程文件夹新建Library文件夹,

打开下载的标准外设库文件夹STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\

  misc.c —— 内核库函数,

  其他 —— 内核外的外设库函数

全选复制到本地工程文件夹的Library文件夹中,

打开固件库STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\inc\文件夹,将外设库函数的头文件都复制到本地工程文件夹的Library文件夹中。

 打开keil软件,新建Library组,将刚才复制的外设库文件添加进去,

 打开外设库文件STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template\

 stm32f10x_conf.h —— 配置库函数头文件的包含关系

 stm32f10x_it.c/h —— 中断函数

将这三个函数复制到本地工程文件夹User目录,

回到keil软件,在User组添加这三个文件。

使用库函数开发,还需要一个宏定义

复制USE_STDPERIPH_DRIVER,打开keil的魔术棒,并将头文件路径添加进去。

基于库函数的开发方式完成。

在proteus画好仿真图,写一个简单的点亮LED的程序,点亮成功

 

posted @ 2023-05-22 15:31  Chaclin  阅读(187)  评论(0编辑  收藏  举报