STM32 认识STM32

目录

什么是嵌入式?

认识STM32单片机

开发环境安装

安装开发环境

开发板资源介绍

单片机开发模式

创建工程的方式

烧录STM32程序


什么是嵌入式?

1.智能手环项目

主要功能有:

彩色触摸屏 显示时间 健康信息:心率,心跳,血氧等 闹钟 记录跑步数据 NFC刷公交,地铁,门禁 蓝牙连接手机接收信息等等

智能手环整体框图设计:

2.智能门禁项目

主要功能有: 显示屏 RDIF开锁开锁 指纹开锁 按键密码开锁 人脸识别开锁等功能

智能门禁整体功能框图:

认识STM32单片机

STM32是单片机,它由意法半导体制造。ST是意法半导体的简称,M指的是微控制器,也 就是MCU的第一个英文。32指的是32位的CPU,32是指32位的CPU,它的CPU是采用 ARM公司的Cortex-m系列的内核设计。 学习STM32单片机可以访问两个官网,一个是意法半导体官网和STM32系列单片机的官 网,其中Cortex-M后面的数字越大性能越好。

以STM32F103C8T6为例:

stm32是家族名,还有stm8,32和8的区别就是CPU处理数据的位数不一样,而且32采 用的是ARM公司的Cortex-M系列的内核,8是意法半导体自主研发的CPU内核。

F指的是产品类别,它是属于基础型,还有汽车A级,超低功耗L等类型。

103这三个数字是指特点的功能,它指STM32的基础型,还有051入门级等等。

C指的是STM32的引脚数量,不同的大写字母代表的不同的引脚数,C代表48引脚。

8是指STM32的闪存(flash)大小,也就是放代码空间的大小,8指闪存大小是 64KB。

T指的是芯片的封装形式QFP。

6指的是芯片的工作环境的温度-40°到+85°。

开发环境安装

安装开发环境

1.安装MDK(keil)

Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。     目前软件对中文的支持不友好,不建议安装网上的一些汉化包之类的。另外建立的工程文件路径也尽量不要存在中文,否则可能会出现一些异常。

2.安装芯片包stm32f1xx

开发板资源介绍

1.原理图

用来表示电路板上各个元器件直接的连接原理的图表不同设计人员表示的方法有差异,没有统一的标准

在产品调试,维修以及改进过程中有着不可或缺的作用

2.网络连接的表达方式

用连线表示两个器件有连接

用网络标号来表示两根期间有连接

单片机开发模式

1.单片机开发模式

1.汇编操作寄存器。执行效率高。编写难度大,移植性差。

2.使用C语言操作寄存器。 执行效率适中。编写效率低,移植性差。

3.使用库开发

标准库,执行效率稍低,但是编写效率高,移植性稍高

标准库是ST公司最早发布的固件库,对STM32芯片进行了完整的封装,覆盖了对应的外设的所有功能。它的缺点就是,它是针对某款STM32型号设计的,可移植性差,例如,F1系列的库和F4系列的库是不同的,但是在F1系列中还是可以通用的。

HAL库,执行效率稍低,但是编写效率高,移植性好

HAL库是近几年官方极力推荐的库,覆盖了全系列的芯片,可以说HAL库就是用来取代标准库的,相对标准库,HAL库有着更高的抽象、整合水平,它的API更多的集中关注在外设的公共函数功能,HAL库的移植性好,它在STM32中的通用性很强。

创建工程的方式

创建工程方式有两种:使用Keil创建工程模板、 使用STM32CubeMX新建一个工程

1.新建一个文件,添加文件:

DOC工程说明

doc说明文档(里面写这个工程是用来干什么的)

Libraries固件库

cmsis内核文件(放一些内核文件,没有他们芯片就工作不起来)

FWLIB外设文件(分为.c文件:翻译行数的定义和.h文件:每个.c文件对应有一个.h文件是放行数的声明)

start_up启动文件(放一些单片机启动的代码,在内核文件里不同的后缀表示不同芯片的闪存的大小)

Project工程文件

keil工程

User应用程序(指的是我们的代码要实现那些功能)

应用程序

新建工程

打开keil5,projecr,第一个,放在桌面上面的project的project,选择芯片:F103C8

2.Keil里面新建文件

START_UP 启动文件

USER 应用程序

CMSIS 内核配置相关文件

DOC 说明文档

FWLIB 外设相关配置

右键keil里的Target1:add group(或者点击红色绿色白色小方格:在中间一栏操作)

keil对应的文件夹里面放入电脑里的文件,双击文件或小方块右侧一列也可以

START_UP:在Libraries:cmsis:start_up:hd.s

USER:在 User:添加.c文件里面包含.h文件

CMSIS:在Libraries:CMSIS:.c文件

DOC:DOC

FWLIB:Libraries:src:ctrl+a全选.c文件

然后点魔术棒:c/c++:includepaths里面的.h文件

缺少USE_STDPERIPH_DRIVER.h文件,需要在魔术棒中宏定义:c/c++

烧录STM32程序

1.配置keil生产hex文件(点击魔术棒,output,勾选create hex file,全局编译成功就会自动生产hex文件,生产在project:Object),要把hex文件烧录进去

2.使用flymcu串口烧录(为什么用串口烧录?我们如果烧录必须通过串口烧录,得外接一个串口芯片,如果要用串口芯片,首先得让它工作起来,所以要安装一个串口驱动)

首先安装串口驱动

3.使用jlink、stlink烧录工具在线烧录

安装stlink/jlink驱动

3.3v-3.3v

gnd-gnd

SWDIO-SWDIO

SWCLK-SWCLK

配置魔术棒勾选然后烧录:Debug:选择烧录方式,LOAD标志

相关推荐
FreakStudio5 小时前
一文速通 Python 并行计算:07 Python 多线程编程-线程池的使用和多线程的性能评估
python·单片机·嵌入式·多线程·面向对象·并行计算·电子diy
SlientICE8 小时前
TCP是什么?不需要!使用ESP32网络层直接通信!
网络·单片机·网络协议·tcp/ip
BW.SU11 小时前
单片机 + 图像处理芯片 + TFT彩屏 触摸开关控件 v1.2
单片机·人机交互·ra8889·开关控件·触摸屏设计
双叶83611 小时前
(51单片机)点阵屏LED显示图片(点阵屏LED教程)(74Hc595教程)
c语言·开发语言·单片机·嵌入式硬件·51单片机
深圳市青牛科技实业有限公司11 小时前
D3502C:一款高性能降压转换器的技术解析,可替代U3502C采用ESOP8封装
单片机·嵌入式硬件·快充·扫地机器人吸尘·筋膜枪电机·驱动轮电机
顾念`12 小时前
履带小车+六轴机械臂(2)
单片机·嵌入式硬件
努力创造奇迹12 小时前
STM32 HAL库 ADC+TIM+DMA 3路 1S采样一次电压
stm32·单片机·嵌入式硬件
leoFY12313 小时前
STM32 BOOT设置,bootloader,死锁使用方法
stm32·单片机·嵌入式硬件
czhaii13 小时前
单片机任意普通IO引脚使用定时器扩展外部中断的巧妙方法
单片机·嵌入式硬件