新建工程——STM32学习笔记2

随笔3个月前发布 启灵
33 0 0

目录

相关资料下载
新建工程
导入启动程序
导入库函数


相关资料下载

下载链接(来自B站江协科技)
通过百度网盘分享的文件:STM32入门教程资料
链接:https://pan.baidu.com/s/17_sbwMXU-xBVFA2sK0smrg?pwd=cgn6
提取码:cgn6


STM32的开发方式

STM32开发方式有3种,分别是基于寄存器开发、基于标准库以及HAL库的开发方式。

寄存器开发方式最为底层,性能最强,但STM32目前结构复杂,寄存器太多,不推荐使用这种方式
基于库函数开发方式则是使用ST官方提供的封装函数,通过这些函数来间接的调用配置寄存器,ST对函数封装较好,既能满足对寄存器的配置,对开发人员也比较友好,提高开发效率
基于HAL库方式,可以使用图形化界面快速配置STM32,但隐藏了底层逻辑,不利于深入理解。


新建工程

在Keil5上方的Project->new uVersion Project… 新建工程
新建工程——STM32学习笔记2

在这里提示要新建项目开发板,我们这里使用的是”STM32F103C8“,如果没有STMicroelectronics的芯片选择,可以看看上一期的环境搭建。
新建工程——STM32学习笔记2

来到下载好固件库,将STM32F10x系列的库函数压缩包解压
新建工程——STM32学习笔记2

进入库函数文件夹后可以看到如下内容
新建工程——STM32学习笔记2

文件名 作用说明
_htmresc Logo图片
Librairs 库函数文件
Project 工程示例
Utilities 评估版,用于测评STM32
Release_Notes.html 发布文档
stm32f10x_stdperiph_lib_um.chm 库函数使用手册

添加启动程序Start

1. 在工程下新建文件夹”Start”

用于存放STM32启动相关程序

2. 导入STM32启动程序

在固件库STM32F10x_StdPeriph_Lib_V3.5.0的库函数LibrariesCMSISCM3DeviceSupportSTSTM32F10xstartuparm下找到启动程序,全部复制到工程文件目录下的新建的Start目录里
新建工程——STM32学习笔记2

3. 导入STM32外设寄存器描述文件以及时钟配置文件

接着返回到STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x,可以看到三个代码文件和一个说明手册,将其也Copy到工程的Start下。
新建工程——STM32学习笔记2

文件名 作用说明
Release_Notes.html STM32F10x库函数说明手册
stm32f10x.h 外设寄存器描述文件,用于描述STM32有哪些外设寄存器和对应地址
system_stm32f10x.c/system_stm32f10x.h 用于配置时钟,系统主频72MHZ 就是system文件里函数配置的

4. 导入内核寄存器描述以及配置函数

在STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3CoreSupport目录下包含内核寄存器描述,拷贝到Start目录下
新建工程——STM32学习笔记2

5. 将Start文件添加到工程项目

使用Keil5打开项目,再新建一个Start目录
新建工程——STM32学习笔记2
再右键选择Add Existing Files to Group 'Start'
新建工程——STM32学习笔记2
选择我们新建的Start目录,将文件类型选择All files(.)
新建工程——STM32学习笔记2

首先添加启动文件,启动文件有很多分类,需要根据使用的STM32开发板型号来选择
新建工程——STM32学习笔记2
作者使用的是start_stm32f10x_md.s,选中启动文件,再选中所有的.c .h(外设内核寄存器描述以及时钟和内核配置文件)点Add添加进来
新建工程——STM32学习笔记2
这些是STM32最基本的文件,不需要再作修改。每个文件带了个小钥匙,代表只读文件。

添加工程头文件路径

必须要在工程选项中添加头文件路径,否则软件编译时是找不到.h文件的。

首先点击options for targer…
新建工程——STM32学习笔记2

在C/C++里找到Include Path栏,点击右边的添加
新建工程——STM32学习笔记2

点击New,将Start文件夹添加进去,这里作者手动将前面的绝对路径C://…改成了.相对路径
新建工程——STM32学习笔记2

新建用户程序目录以及主程序

在项目文件夹里新建用户文件夹
新建工程——STM32学习笔记2

在Keil5中右键选择Target->Add Group新建组,更名为User。再右建User组,选择Add New Item新建c文件,新建路径选择为刚刚在工程目录下新建的User文件夹

接着来到main代码文件,在main下右键选择insert “#include file”插入启动程序的头文件
新建工程——STM32学习笔记2

在main文件中编写main函数,并加入while(1)死循环

#include "stm32f10x.h"
int main(void)
{
while (1)
{}
}

写好后在左上角选择Build编译
新建工程——STM32学习笔记2

接着使用杜邦线将STLINK与STM32连接,接线方式如表格所示

STLINK STM32
3.3V 3.3V
SWCLK DCLK
GND GND
SWDIO DIO

接着在选择魔术棒,选择ST-LINK Debugger
新建工程——STM32学习笔记2

再点Debbuger右侧Set->Flash Downloadi,将Reset and Run勾选上,这样以后每次下载后都会复位并运行程序。
新建工程——STM32学习笔记2

最后点击Download按钮就能将程序下载到STM32板子上了
新建工程——STM32学习笔记2


导入库函数

与启动程序相同,在工程目录下新建”Library”目录,在工程中Add添加Group,再将固件库STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driversrc以及inc下的所有文件复制到Library目录下,
同样用Add Existing Files方式添加到工程。

光将库函数导进来还不够,还需要配置库函数头文件引用信息,以及库函数中断,所以需要将固件库模板
STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_Template下的三个文件stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h导入进来,同样是将其复制到User目录下,再在项目中导入。
新建工程——STM32学习笔记2
新建工程——STM32学习笔记2

接着需要注意的是,还需要声明一个宏后才能够使stm32f10x_conf.h引用生效
右键头文件选择Open document “stm32f10x.h”进入到头文件的声明中
新建工程——STM32学习笔记2

进入头文件后划到最下方,可以看到这里定义了,必须声明宏USE_STDPERIPH_DRIVER之后引用头文件才有效
新建工程——STM32学习笔记2

复制USE_STDPERIPH_DRIVER到工程选项下的C/C++中的Preprocessor Symbols->Define中去
新建工程——STM32学习笔记2

Include path也要将Libaray加入进去
新建工程——STM32学习笔记2

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...