前言
为什么写此文
- STM8虽然不及STM32知名,但其可以作为学习单片机的一个起始跳板,帮助学习单片机中的各个重要概念
- 网络上的教程多是使用库函数而非对寄存器进行配置,虽然操作方便,但不便于了解单片机的底层原理;另外很多STM8的教程在网络上较为零散,只介绍实现某个功能,不成体系;相关书籍又是“大部头”与枯燥的手册,对自学者不够方便
- 为此我整理本人学习STM8S过程中的笔记和例程代码发布于博客园,难有错漏,望雅正!
本文内容来源
- 本文大部分内容来自龙顺宇老师的《深入浅出STM8单片机入门、进阶与应用实例》
- 另有潘永雄老师的《STM8S系列单片机原理与应用》作内容补充
- 还有小部分内容来自网络
读前准备
- 本文使用C语言对STM8S的寄存器进行配置,但并不会涉及非常难的语法,基本上只需要看本人的C语言博文前7章即可https://www.cnblogs.com/untit1ed/p/18547790
- 准备一块STM8S系列的开发板,和ST-LINK v2
- RM0016手册https://www.st.com/resource/en/reference_manual/CD00190271-.pdf
这是ST官方针对STM8所出的应用手册,可以说所有的教材包含内容都来自于这本手册,使用它就可以方便地查询STM8S上所有的资源该如何配置
在网络上可以搜索到其中文翻译版本 - 安装IAR for STM8软件
集成电路IntegratedCircuit
什么是集成电路
- 将电路所需的晶体管、二极管等元件及布线连接在一起,制作在半导体晶片或介质基片上,再封装到管壳内,使得整个电路在结构上是一个整体,这就是集成电路
- 集成电路体积小,且引出线与焊点也减少,提升了电路可靠性,降低了功耗
- 集成电路可按组成与应用领域划分类别:
集成电路的类别
-
模拟集成电路
- 又称线性电路,用于产生、放大、处理模拟信号
- 模拟信号即信号数值随时间连续变化的信号
-
数字集成电路
- 用于产生、放大、处理数字信号
- 数字信号即高低电平,与模拟信号的连续相对,其数值随时间离散变化
- 一个数字系统一般由控制部件和运算部件组成,在时钟脉冲驱动下控制部件控制运算部件完成要执行的动作
-
混合集成电路
- 通过模拟数字转换器ADC与数字模拟转换器DAC,可以将数字电路与模拟电路相连
- 把模拟与数字电路集成在一个单芯片上,便是混合集成电路,借此可做出ADC与DAC等器件
- 该类芯片具备模拟信号输入输出、数字信号处理与传输等通道,信号转换与处理单元
- 单片机芯片基本上属于混合信号集成电路
单片机
什么是单片机
-
单片机是集成电路芯片的一种
是将具有中央处理器CPU、随机储存器RAM、只读储存器ROM、多种I/O通道、中断系统、定时器、功能外设等资源集成到一块硅片晶圆上构成的微型计算机系统
单片机的封装
- 封装半导体集成电路晶圆用的外壳,起到安放、固定、密封、保护芯片和增强电热性能的作用
- 封装时晶圆上的连接焊点会用导线引到封装外壳的引脚上,这些引脚通过PCB上的导线与其它器件连接
- STM8普遍采用LQFP封装,即薄型四方扁平式封装(Low-profile Quad Flat Package),特征是CPU芯片引脚之间距离小,引脚细
- 了解单片机芯片所用封装有助于设计PCB时选择合适的PCB芯片封装,可通过查阅数据手册得知封装形式
STM8家族
-
STM8为意法半导体的单片机产品系列,是一个8位微控制器平台,拥有8位内核
-
其型号繁多,可以分为以下系列,同时各个系列中还区分不同的型号:
-
STM8AF
适用于汽车电子,具备高稳定性和抗干扰特性
-
STM8AL
适用电池供电与绿色能源等领域,有超低功耗的特性
-
STM8L
低功耗,便携
-
STM8S
消费级、工业和计算机市场应用
-
STM8T
电容接近、触摸识别产品
-
开发环境
软件开发环境
-
编写程序,调试软件功能,下载固件到单片机中
-
以IAR for STM8为例,演示如何进行开发:
-
创建程序工程
- 菜单栏 - Project - Create a New Project
- 确认项目类别界面 - 选择项目所用语言 - OK - 选择储存位置
-
配置工程参数
-
明确使用的单片机型号
在workspace中右键当前项目 - Options - Device - 选择型号
-
下载调试工具
Debugger - Driver - ST-LINK
-
-
保存工作区
菜单栏 - File - Save Workspace As - 选择存储位置
工程建立完毕后即可编写程序
-
编译
编写完成后单击 工具栏 - Make 执行程序工程的编译和链接操作
最终得到可下载到单片机中的固件程序
-
配置选项字节参数
选项字节:一组与单片机片上资源有关的选项,用于配置硬件特性、储存器保护状态、资源外设功能等,这些字节位于特定储存器阵列中
-
用ST-LINK连接电脑和单片机
-
菜单栏 - ST-LINK - Options Bytes
左侧Options为用户可配置的选项,右侧Value为选项配置参数
-
-
程序调试和下载
下载:将固件程序烧录到单片机内部Flash储存器中
调试:根据软硬件联调的实际运行结果去DeBug
- 按需配置选项字节后,将程序工程再次编译链接一遍
- 工具栏 - Download and Debug
- 注意,这一步需要用ST-LINK连接电脑和单片机(连接方法见下),并且如果单片机上有供电开关的话记得打开,才能烧入程序
在程序下载完成后,将自动进入程序仿真调试界面
-
硬件开发环境
- 连接外围电路,驱动功能外设,实现电气功能
开发板和最小板
- 最小板,也叫核心板、最小系统,顾名思义,这种板只包含单片机的控制核心,其他功能都要自行连接,就好像一台只有主机的电脑,屏幕、鼠标、音响都要自己再配
- 而一般面向初学者的开发板,已经连接上多种外设资源,比如通信模块、发光二极管、矩阵键盘等等,便于调用
ST-link v2的使用
- ST-LINK是程序调试和下载的工具,用于将电脑与单片机连接起来,把上位机(写程序的电脑)所创建的程序输送到下位机(执行程序功能的单片机)
- 它会将电脑的USB接口转为四个端口:SWIM、CLK、3V3、GND
SWIM接口传输数据,CLK是时钟信号,3V3是电源,GND接地(可能标识有些许不同,但功能都是一样的)用四根跳线将这四个端口从ST-LINK接到单片机对应端口上即可连接电脑和单片机
仪器与参数分析
- 一些在学习和排障过程中会用到的仪器,可以到学校实验室中借
示波器
- 用于将电信号时变规律以可见形式显示出来
- 测量输入信号的幅度、频率、周期等基本参数
- 测量脉冲信号的高脉宽、低脉宽、占空比
- 一般多用于模拟信号的观察
逻辑分析仪
- 数据域测量设备,用于测量输入信号的逻辑门限电压