STM32开发学习:STM32初始配置及新建工程指南

Stm32开发方式主要有以下三种

1.基于寄存器的开发方式

与51单片机的开发方式相同,最简单最底层,效率最高,但也是最繁琐,stm32的结构过于复杂,寄存器太多,全部通过寄存器的方式太过于繁琐,不推荐。

2.基于标准库(库函数)的开发方式

使用stm官方提供封装好的函数,透过调用函数间接的进行对寄存器的配置

3.基于hal库的开发方式

方便但会造成对单片机的了解太过片面,暂不学习

安装好keil uVision5后进行start文件的创建

固件库的文件

库函数的文件目录

第一个文件夹中有两个图片(没用)

第二个libraries中就是库函数中的文件(建工程中要用)

第三个project文件是官方提供的工程示例和模板,在之后进行库函数的使用时可以作为参考

第四个utilities文件夹是sym32评估的相关例程::官方用stm32做的一个小的电路板用来测评stm32的,其中装的就是在官方做的电路中的运行程序

后面两个文件第一个是库函数的发布文档(版本说明)一个是库函数的使用手册(教怎么使用库函数)

新建工程:

第一步:

先建立一个存放工程文件的文件夹,(最好不出现中文路径)起名英文名称(最好)

这里起名叫stm32project

第二步:

打开keil5软件

点击project——New uvision project

然后选择刚刚建立的文件夹

在该文件夹下再次新建一个文件夹用于存放本次的工程

这里起名叫stm32工程模板

点进去給工程名称起名project(通用)

确定后选择是stm32F103C8T6(所用单片机型号)

tips:若遇到新建工程小助手,暂时先×掉,暂时不用,先手动配置

可以看到这个界面:我们还是不能对单片机进行操作的,在操作前,我们需要引入一些文件

打开Libraries——cmsis——Cm3——DeviceSupport——ST——STM32F10X——startup——arm    ——》这些就是stm32的启动文件(程序从启动文件开始执行)

将启动文件复制到工程文件夹中另起文件夹命名为start,将启动文件放复制一份到该文件夹中

接着回到固件库的stm32f10x文件夹中

我们可以发现两个头文件和一个c文件

stm32f10c.h 是STM32的外设寄存器描述文件(作用跟51单片机的头文件REGX52.h一样,描述stm32有哪些寄存器和寄存器对应的地址)

两个system文件是用来配置时钟的;STM32主频72Mhz,就是system中的函数配置的

同样,我们把这三个文件复制下来粘贴到start文件中

因为STM32是内核和外围的设备组成的,内核的寄存器和外设寄存器文件不是在一起的,所以我们还需要将内核的寄存器描述文件同样复制一份放在start启动文件中。打开CM3 ——Core Support中两个cm3(Cortex-M3)文件就是内核的寄存器描述同样的将这两个文件复制到start文件中

Start文件复制完成

添加start文件到组中:单击Target文件夹选中,右键菜单中点击AddGroup…在Target文件夹下新建一个文件夹,左键点击选中,右键修改文件夹名为start

接着右键点击文件夹,

点击添加已存在的文件到文件夹中——Add Exiting Files To Group start

在弹出页面的文件过滤器中选择All files

打开start文件夹

演示所用启动文件选择后缀md.s的文件,添加,并将余下所有头文件(.h)和(.c)文件都添加进去

接下来需要添加头文件路径,不然软件会找不到你的头文件路径

点击魔术棒按钮,打开工程选项,在c/c++一栏找到include path栏,找到三个点按钮新建路径,然后在弹出的框里再点三个点的按钮,添加start的路径,点击ok,完成添加。

打开工程文件夹,新建文件夹user,用于存放main函数,同之前的操作,在Target中添加user文件夹

点击user文件夹,选择添加新文件(add new item…),选择.c文件文件名定为main,(注意路径要是user文件夹中不然默认是user之外)

若通过寄存器操作,环境已经搭建完成了

**** 关于No ULINK2/me….警告的解决方法                                                                        *****

keil v5 No Ulink2/Me Device Found 的解决方法_keil5提示no ulink2-CSDN博客

物联沃分享整理
物联沃-IOTWORD物联网 » STM32开发学习:STM32初始配置及新建工程指南

发表评论