STM32环境搭建&新建工程
- 软件安装:
- 开发方式&新建工程步骤&架构
- 个人心得
软件安装:
安装Keil5 MDK
安装器件支持包
软件注册
安装STLINK驱动
安装USB转串口驱动
开发方式&新建工程步骤&架构
STM32开发方式:
1.寄存器 和51一样,程序直接控制配置寄存器。最底层,效率最高,但是由于结构复杂,寄存器太多,不推荐这种开发方式
2.标准库 库函数(ST官方提供的封装好的函数,调用这些函数直接配置寄存器,由于ST对寄存器封装地比较好,这种方式既能满足对寄存器的配置,对开发人员也比较友好,有利于提高开发效率)需要库函数压缩包,固件库的文件,标准库函数压缩包
3.HAL库适合快速上手STM32,同时移植效果更好,但是隐藏了底层逻辑。推荐标准库开发,后面提高效率开发再学HAL库开发
STM32F10x_StdPeriph_Lib_V3.5.0 STM32标准固件库里面的文件说明:
_htmresc文件夹 两张图片,没啥用
Libraries文件夹 存放的库函数文件,要用到
Project文件夹 官方提供的工程示例和模板,以后使用库函数的时候可以进行参考
Utilities文件夹 官方评估板的相关例程
Release_Notes.html发布文档 版本说明
stm32f10x_stdperiph_lib_um.chm使用手册 教如何使用这个库函数,有时间可以看
工程的必要文件
1.Stm32的启动文件
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
启动文件有很多分类,但是我们只能添加其中一个,对应器件的FLASH内存大小来选择启动文件
2.STM32的外设寄存器描述文件、时钟配置文件和函数
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x文件夹下
stm32f10x.h、stm32f10x.h、stm32f10x.三个文件
stm32f10x.h是STM32的外设寄存器描述文件;和51单片机的头文件REGX52.H一样。描述STM32有哪些寄存器和它对应的地址的
system_stmf10x.c和.h文件时用来配置时钟的,STM32主频72MHz,就是system文件里的函数配置的
STM32由内核和内核外围的设备组成,而且内核的寄存器描述和外围设备的描述文件不是在一起的,所以还需添加内核寄存器的描述文件
3.内核寄存器的描述文件
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport
core_cm3.h和core_cm3.c两个文件
这两个文件就是内核的寄存器描述(还带了一些内核的配置函数,所以有一个.c文件)
这些文件都是STM32最基本的文件,不需要我们修改,添加就可。(文件图标带了小钥匙,意味着只读的文件)
工程选项里面要添加上这个文件夹的头文件路径,否则软件找不到.h文件
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src文件夹
STM32的标准外设库驱动
但是misc.c是内核的库函数,其他是内核外的外设库的库函数
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc
标准外设驱动库的头文件
但是固件库的文件此时还不能直接使用,
STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template文件夹
stm32f10x_conf.h、stm32f10x_it.c和stm32f10x_it.h三个文件
Stm32f10x_conf.h (configuration)配置库函数头文件的包含关系的;还有用来参数检查的函数定义,这是所有库函数都需要的
Stm32f10x_it.c 和it.h 用来存放中断函数的
建立工程文件夹,Keil中新建工程,选择型号
工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹
工程里对应建立Start、Library、User等同名称的分组,然后将文件夹内的文件添加到工程分组里
工程选项,C/C++,Include Paths内声明所有包含头文件的文件夹
工程选项,C/C++,Define内定义USE_STDPERIPH_DRIVER
工程选项,Debug,下拉列表选择对应调试器,Settings,Flash Download里勾选Reset and Run
工程名字:工程干啥可以用文字说明,但是改名字不会很方便
Manage Run-Time Enviroment 新建工程小助手,可帮助快速新建工程,暂时不用
个人心得
在单片机嵌入式领域,个人推荐ARM内核的处理器芯片、
HAL库和cubeMx是ST公司做的
GD用的话会有兼容性问题(GD也有自己的库了)
(搞得越来越多啊,花里胡哨,谁来统一一下)
时间(240613)
其他芯片暂时不推荐学习