目录
什么是嵌入式?
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标志