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博客