STM32基础知识及环境搭建

一、STM32基础知识

1.1 STM32芯片命名规则

STM32基础知识及环境搭建_第1张图片

1.2 STM32单片机片上资源/外设

STM32基础知识及环境搭建_第2张图片

NVIC 是内核里面用于管理中断的设备。比如用于配置中断优先级

SysTick 是内核里面的一个定时器,主要是用来给操作系统提供定时服务的。这个STM32是可以加入操作系统的,比如FreeRTOS、UCOS等,如果用了这些操作系统,就需要SysTick提供定时来进行任务切换的功能。对于我们可以用这个定时器来完成Delay函数的功能。

RCC 可以对系统的时钟进行配置,还有就是使能各种模块的时钟。在STM32中,其他的这些外设在上电的情况下默认是没有时钟的,不给时钟的情况下,操作外设是无效的,外设也不会工作,这样的目的是降低功耗。所以在操作外设之前,必须要先使能他的时钟,这就需要我们用RCC来完成时钟的使能。

GPIO 就是通用的IO口。我们可以用GPIO来点灯,读取按键等

AFIO 是复用IO口。他可以完成复用功能端口的重定义,还有中断端口的配置

EXTI 是外部中断。配置好外部中断后,当引脚有电平变化时,就可以触发中断,让CPU来处理任务

TIM 是定时器。这也是整个STM32最常用、功能最多的外设,TIM分为高级定时器、通用定时器、基本定时器三种类型,其中高级定时器最复杂,常用的是通用定时器,这个定时器不仅可以完成定时中断的任务,还可以完成测频率、生成PWM波形、配置成专用的编码器接口等功能。像PWM波形,就是我们电机驱动、舵机驱动最基本的要求了

ADC 是模数转换器。这个STM32内置了12位的AD转换器,可以直接读取IO口的模拟电压值,无需外部连接AD芯片,使用非常方便。

DMA 是直接内存访问。这个可以帮助CPU完成搬运大量数据这样繁杂任务。

USART 是同步或者异步串口。我们平常用的UART是异步串口的意思,这里的USART是既支持异步串口,也支持同步串口,用异步串口比较多

I2C和SPI 是非常常用的两种通信协议。STM32也内置了他们的控制器,可以用硬件来输出时序波形,使用起来更高效,当然用通用IO口来模拟时序波形也是没有问题的

CAN 通信一般用于汽车领域

USB 通信在生活中很常见,利用这个STM32的USB外设,可以做一个模拟鼠标、模拟U盘等设备

RTC 是实时时钟。在STM32内部完成年月日、时分秒的计时功能,而且可以接外部备用电池,即使掉电也能正常运行

CRC 校验,是一种数据的校验方式。用于判断数据的正确性,有了这个外设的支持,进行CRC校验就会更加方便一些

PWR 电源控制。可以让芯片进入睡眠模式等状态,来达到省电的目的

BKP 备份寄存器。这是一段存储器,当系统掉电时,仍可由备用电池保持数据,这个根据需要,可以完成一些特殊功能

IWDG和WWDG 是看门狗。当单片机因为电磁干扰死机或者程序设计不合理出现死循环时,看门狗可以及时复位芯片,保证系统的稳定

DAC 是数模转换器。他可以在IO口直接输出模拟电压,是ADC模数转换的逆过程

SDIO 是SD卡的接口。可以用来读取SD卡

FSMC 是可变静态存储控制器。可以用于扩展内存,或者配置成其他总线协议,用于某些硬件的操作

USB OTG 就是USB主机接口。用OTG功能,可以让STM32作为USB主机去读取其他USB设备

二、软件安装注意事项

1、安装KELL软件,不要有中文路径

2、使用注册机注册KELL软件时,一定要使用管理员权限打开KELL软件,否则注册失败。

3、软件安装成功之后,安装对应芯片的固件包;
① 打开KELL文件,找到Pack Installer,点击File,点击Import,然后找到芯片的固件包,进行安装。(法一)
② 找到芯片固件包后,双击即可安装,他会自动寻找KELL路径下固件包应存放的位置。(法二)

4、FlyMCU软件的使用

STM32基础知识及环境搭建_第3张图片

要先安装CH340驱动软件。使用FlyMCU软件下载HEX文件到单片机时,下载器要连接电脑,保证系统板要通电,否则搜索不到串口。

三、新建工程

1、新建一个文件夹,然后这个文件夹里可以存放自己的各种工程项目,也方便管理。

2、打开Keil5软件,点击Project -->New μVision Project,找到之前新建的文件夹打开,然后输入要新创建的工程文件名

3、选择项目所用的芯片
STM32基础知识及环境搭建_第4张图片

4、配置运行环境
STM32基础知识及环境搭建_第5张图片

此时工程创建完成,系统会在创建的文件夹里自动生成一些文件
STM32基础知识及环境搭建_第6张图片

5、添加STM32的启动文件

路径:固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm

在文件夹里新添加一个start 文件夹,然后将固件库中的启动文件复制到start文件夹中
STM32基础知识及环境搭建_第7张图片

启动文件 由汇编语言编写,程序会在运行主函数之前,利用启动代码内的程序、初始化系统软硬件。

ld:低密度产品,FLASH小于64K;
md
:中等密度产品,FLASH=64 or 128K;
hd
:高密度产品,FLASH大于128K;

6、配置STM32底层时钟

路径:固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

把底层时钟配置文件复制到start 文件夹下
STM32基础知识及环境搭建_第8张图片

 stm32f10x.h 是STM32的外设寄存器描述文件,用来描述STM32有哪些寄存器和它对应的地址的,包含STM32底层所有的寄存器、结构体、宏定义。两个system文件是用来配置时钟的,STM32主频72MHz 就是system文件里的函数配置的。

7、添加内核寄存器描述文件

路径:固件库\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport

把内核寄存器描述文件复制到start 文件夹下

STM32基础知识及环境搭建_第9张图片

8、添加中断描述文件

路径:固件库\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template

创建一个user文件夹,把中断描述文件复制到user 文件夹下
STM32基础知识及环境搭建_第10张图片

conf 文件(configuration)是用来配置库函数头文件的包含关系的,同时里面还有一个用来参数检查的函数定义。两个it 文件是用来存放中断函数的

9、添加库函数文件

路径:固件库\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver

 创建一个Library 文件夹,把库函数文件复制到Library 文件夹下
STM32基础知识及环境搭建_第11张图片

10、创建存放硬件的文件夹

11、添加文件到工程(文件管理)

STM32基础知识及环境搭建_第12张图片

另一种添加文件到工程的方式:

Keil5软件左上角点击新建 new(Ctrl+N) ,然后选中新建的空白文档点击保存Ctrl+S,此时弹出一个框,选择你要保存到哪个文件夹下,并命名 xxx.c 或者 xxx.h 文件。

另另一种添加文件到工程的方式:

右击Keil5软件左侧的文件夹,弹出一个对话框后,选择Add New Item to Group(添加新项目到组),然后在弹出的对话框中选择新建的文件类型,然后给文件命名、修改路径。

如果拿到了别人的C文件或者H文件想添加到自己的工程文件夹下,那么就双击Keil5软件左侧的文件夹,弹出一个对话框后,选择你要添加的文件即可。(或者:右击Keil5软件左侧的文件夹,弹出一个对话框后,选择Add Existing File to Group(添加现有文件到组),弹出一个对话框后,选择你要添加的文件即可。)

12、生成HEX文件

STM32基础知识及环境搭建_第13张图片

13、添加头文件路径

STM32基础知识及环境搭建_第14张图片

 在将文件添加到工程的过程中,一般不添加H文件,通常通过添加头文件路径,去调用H文件。编译后,H文件会自动包含。

14、添加使用库函数的宏定义

STM32基础知识及环境搭建_第15张图片

15、HEX文件下载设置

STM32基础知识及环境搭建_第16张图片

 STM32基础知识及环境搭建_第17张图片

    关于STM32单片机的具体学习详见B站(通俗易懂带你入门单片机):江科大自化协

你可能感兴趣的:(STM32嵌入式,stm32,单片机,嵌入式硬件)