第1章 “麻雀虽小,五脏俱全”开门见山谈单片机…………………………………………… 1
1.1 “一沙一起源,一芯一世界”集成电路王国……………………………………………… 2
1.2 找寻电子界的神物“七窍玲珑芯”……………………………………………………… 3
1.3 “师傅领进门,修行靠个人”单片机修行路……………………………………………… 4
1.3.1 “根骨奇佳”电子基础……………………………………………………………… 5
1.3.2 “能说会道”编程语言……………………………………………………………… 6
1.3.3 “武功秘籍”学习资源……………………………………………………………… 8
1.3.4 “武器装备”实践平台……………………………………………………………… 10
1.3.5 “内功心法”学习方法……………………………………………………………… 11
第2章 “五娃出世,各显神通”初识STM8系列单片机……………………………………… 12
2.1 意法半导体STM8家的“五个娃” …………………………………………………… 13
2.2 “大娃STM8AF”善汽车电子………………………………………………………… 13
2.3 “二娃STM8AL”攻绿色能源………………………………………………………… 15
2.4 “三娃STM8L”会低功耗与便携……………………………………………………… 16
2.5 “四娃STM8S”主消费及工控………………………………………………………… 17
2.6 “五娃STM8T”通电容接近、触摸识别……………………………………………… 19
2.7 “主角上场”STM8S207/208系列……………………………………………………… 20
第3章 “工欲善其事,必先利其器”软/硬件开发环境及调试准备………………………… 23
3.1 “塑造灵魂”软件开发环境……………………………………………………………… 24
3.1.1 IAR公司的软件开发环境IARforSTM8……………………………………… 26
3.1.2 ST公司的软件开发环境STVD ………………………………………………… 33
3.2 “躯干肢体”硬件开发环境……………………………………………………………… 41
3.2.1 开发板的“那些事儿”……………………………………………………………… 41
3.2.2 思修电子STM8“祥云”系列开发平台简介……………………………………… 42
3.3 “形神合一”程序调试与下载…………………………………………………………… 44
3.3.1 调试仿真工具ST-LINK简介…………………………………………………… 44
3.3.2 可视化编程STVP软件运用…………………………………………………… 46
3.3.3 Flashloaderdemonstrator串口下载软件运用………………………………… 49
3.4 “望闻问切”参数测试与分析…………………………………………………………… 53
3.4.1 信号观察好搭档“示波器”………………………………………………………… 53
3.4.2 数据分析好帮手“逻辑分析仪”…………………………………………………… 54
第4章 “五指琴魔,智能乐章”通用输入/输出GPIO 资源………………………………… 56
4.1 GPIO配置模式基础知识铺垫………………………………………………………… 57
4.1.1 “Playit!”弹奏单片机的智能乐章……………………………………………… 57
4.1.2 如何理解悬浮输入………………………………………………………………… 58
4.1.3 如何理解上拉输入………………………………………………………………… 59
4.1.4 如何理解推挽输出………………………………………………………………… 60
4.1.5 如何理解开漏输出………………………………………………………………… 60
4.1.6 如何理解GPIO内部保护二极管………………………………………………… 63
4.1.7 GPIO引脚功能复用及意义……………………………………………………… 64
4.1.8 GPIO引脚外部中断功能………………………………………………………… 65
4.1.9 GPIO引脚电气性能……………………………………………………………… 66
4.2 初识STM8单片机GPIO资源……………………………………………………… 69
4.2.1 STM8S207/208系列单片机封装及引脚分布…………………………………… 70
4.2.2 GPIO资源相关寄存器简介……………………………………………………… 79
4.2.3 GPIO输入/输出模式配置流程………………………………………………… 81
第5章 “光电世界,自信爆棚”LED 器件编程应用………………………………………… 87
5.1 瞬间自信心爆棚的入门经典“流水灯”………………………………………………… 88
5.1.1 为什么入门经典总是“点灯实验”………………………………………………… 88
5.1.2 发光二极管模型及电气简介……………………………………………………… 89
5.1.3 基础项目A 左移/右移/花样流水灯…………………………………………… 89
5.2 GPIO资源扩展“小帮手”……………………………………………………………… 93
5.2.1 基础项目B74HC138译码器应用实验………………………………………… 93
5.2.2 基础项目C74HC154译码器应用实验………………………………………… 98
5.2.3 基础项目D74HC164“串入并出”应用实验…………………………………… 103
5.3 火柴棍游戏说“数码管”原理………………………………………………………… 108
5.3.1 数码管内部结构及分类………………………………………………………… 109
5.3.2 基础项目E 一位数码管0~F数码显示……………………………………… 111
5.3.3 实战项目A 基于74HC595串行动态数码管显示…………………………… 114
第6章 “点、线、面的艺术”字符/点阵型液晶编程应用…………………………………… 121
6.1 单片机人机交互中的显示单元……………………………………………………… 122
6.1.1 常见的单片机显示方案选择…………………………………………………… 122
6.1.2 神奇的单片机“显卡”…………………………………………………………… 123
6.2 字符型1602液晶模块………………………………………………………………… 124
6.2.1 模块功能引脚定义……………………………………………………………… 125
6.2.2 读/写时序及程序实现…………………………………………………………… 126
6.2.3 液晶功能配置命令……………………………………………………………… 128
6.2.4 基础项目A1602液晶字符、进度条、移屏实验……………………………… 132
6.2.5 基础项目B 四线驱动1602节省GPIO实验………………………………… 138
6.3 图形/点阵型12864液晶模块………………………………………………………… 141
6.3.1 模块功能引脚定义……………………………………………………………… 142
6.3.2 读/写时序及程序实现…………………………………………………………… 143
6.3.3 液晶功能配置命令……………………………………………………………… 144
6.3.4 汉字坐标与绘图坐标…………………………………………………………… 146
6.3.5 基础项目C12864液晶字符、汉字显示实验…………………………………… 148
6.3.6 实战项目A12864液晶进度条动画效果……………………………………… 151
6.3.7 基础项目D 两线驱动12864节省GPIO实验………………………………… 154
6.3.8 实战项目B 两线串行模式正弦波打点绘图…………………………………… 158
第7章 “0101,我是键码!”独立按键/矩阵键盘交互编程………………………………… 163
7.1 “输入设备”人机交互中的“桥梁”…………………………………………………… 164
7.2 轻触按键基础知识与应用…………………………………………………………… 164
7.2.1 轻触按键分类及组成结构……………………………………………………… 164
7.2.2 轻触按键电压波形……………………………………………………………… 165
7.2.3 常见按键“去抖动”方法………………………………………………………… 166
7.3 基础按键/键盘结构及应用…………………………………………………………… 167
7.3.1 独立按键结构及电路…………………………………………………………… 167
7.3.2 基础项目A 独立按键检测与控制实验………………………………………… 168
7.3.3 行列式矩阵键盘结构…………………………………………………………… 171
7.3.4 基础项目B 矩阵键盘“线反转式”扫码法实验………………………………… 172
7.4 不曾遗忘的“IBMPS/2”键盘/鼠标协议及应用…………………………………… 179
7.4.1 回到“XT、AT、PS/2”的时代…………………………………………………… 179
7.4.2 PS/2通信及数据帧构成………………………………………………………… 181
7.4.3 PS/2键盘的通码、断码和扫描码集…………………………………………… 182
7.4.4 PS/2设备到主机通信流程……………………………………………………… 186
7.4.5 实战项目APS/2小键盘加1602液晶密码锁实验…………………………… 187
7.4.6 实战项目BPS/2大键盘Shift键大小写功能实验…………………………… 195
第8章 “高楼大厦,各有功用”Flash程序存储器与EEPROM …………………………… 202
8.1 小宇老师的“高楼大厦”……………………………………………………………… 203
8.2 细说“高楼大厦”之功用……………………………………………………………… 205
8.2.1 “临时办公室”随机读写RAM ………………………………………………… 205
8.2.2 “教务调度室”堆栈……………………………………………………………… 206
8.2.3 “专业教室”FlashROM ………………………………………………………… 206
8.2.4 “机密档案室”EEPROM ……………………………………………………… 208
8.2.5 “校长决策室”选项字节………………………………………………………… 209
8.2.6 “学校资源管理”端口及外设寄存器…………………………………………… 210
8.2.7 “实训创新室”引导启动ROM ………………………………………………… 211
8.2.8 “核心事务管理”CPU/SWIM/Debug/ITC寄存器…………………………… 212
8.2.9 “突发事件传达室”32级中断向量……………………………………………… 213
8.3 存储器资源相关寄存器简介………………………………………………………… 214
8.3.1 FLASH_CR1/FLASH_CR2控制寄存器……………………………………… 214
8.3.2 FLASH_FPR保护寄存器……………………………………………………… 217
8.3.3 FLASH_PUKR程序存储器解保护寄存器…………………………………… 218
8.3.4 FLASH_DUKR数据EEPROM 解保护寄存器……………………………… 218
8.3.5 FLASH_IAPSR状态寄存器…………………………………………………… 219
8.4 FlashROM 的编程方式简介………………………………………………………… 220
8.4.1 什么是IAP和ICP ……………………………………………………………… 220
8.4.2 如何理解标准/快速编程以及RWW 功能…………………………………… 220
8.4.3 如何理解字节编程……………………………………………………………… 221
8.4.4 如何理解字编程………………………………………………………………… 222
8.4.5 如何理解块编程………………………………………………………………… 223
8.5 存储器读/写保护与控制……………………………………………………………… 224
8.5.1 ROP存储器读出保护…………………………………………………………… 224
8.5.2 “接头暗号”MASS存储器存取安全系统……………………………………… 224
8.6 基础项目A:1位数码管计数状态掉电不丢失实验……………………………… 226
第9章 “单片机的外科手术”Optionbytes配置及应用…………………………………… 231
9.1 “开始手术”配置系统参数及外设功能……………………………………………… 232
9.2 Optionbytes选项配置详解………………………………………………………… 233
9.3 利用STVP修改选项字节方法及流程……………………………………………… 240
9.4 利用IAR修改选项字节方法及流程………………………………………………… 243
9.5 基础项目A 基于IAP方式修改选项配置实验…………………………………… 248
第10章 “内藏三心,坚实比金”时钟控制器配置及应用…………………………………… 252
10.1 “唐僧的心”说STM8时钟源选择………………………………………………… 253
10.2 好大的一棵“时钟树”………………………………………………………………… 256
10.3 配置系统主时钟为HSI …………………………………………………………… 257
10.4 配置系统主时钟为HSE …………………………………………………………… 265
10.4.1 自动切换时钟源步骤及配置过程……………………………………………… 265
10.4.2 基础项目BHSI与HSE自动切换时钟源…………………………………… 268
10.4.3 手动切换时钟源步骤及配置过程……………………………………………… 272
10.4.4 基础项目CHSI与HSE手动切换时钟源…………………………………… 275
10.5 配置系统主时钟为LSI …………………………………………………………… 279
10.5.1 基础项目D 程序配置启用LSI时钟源……………………………………… 281
10.5.2 基础项目EHSI与LSI自动切换时钟源…………………………………… 283
10.5.3 基础项目FHSI与LSI手动切换时钟源…………………………………… 287
10.6 修剪“时钟树枝”降低系统功耗……………………………………………………… 288
10.7 时钟安全系统CSS“比干的心”……………………………………………………… 290
10.7.1 基础项目G “挖心不死”效果验证…………………………………………… 294
10.8 可配置时钟输出“CCO”功能……………………………………………………… 297
10.8.1 基础项目H 可配置时钟输出“CCO”实验…………………………………… 299
第11章 “轻重缓急,有条不紊”中断控制器配置及应用…………………………………… 304
11.1 何谓中断? 意义何在? ……………………………………………………………… 305
11.2 “中断”了! 咋处理? ………………………………………………………………… 306
11.3 “临朝治政,百官进言”中断源及分类……………………………………………… 308
11.3.1 “皇帝、皇后、皇太后”谁敢惹? ………………………………………………… 309
11.3.2 “文武百官”挨个来……………………………………………………………… 310
11.3.3 “圣旨到!”STM8中断指令…………………………………………………… 311
11.3.4 “STM8中断皇朝”游戏攻略…………………………………………………… 312
11.4 中断管理模式………………………………………………………………………… 318
11.4.1 非嵌套模式“微臣有本请奏”…………………………………………………… 319
11.4.2 嵌套模式“大人此言差矣”……………………………………………………… 320
11.5 中断功能相关寄存器详解…………………………………………………………… 321
11.5.1 CPU 条件代码寄存器CCR …………………………………………………… 321
11.5.2 软件优先级寄存器ITC_SPRx ……………………………………………… 323
11.5.3 外部中断控制寄存器EXTI_CRx …………………………………………… 324
11.6 基础项目A 查询法/中断法独立按键对比实验…………………………………… 328
第12章 “老和尚捻珠数羊”8位基本型定时/计数器TIM4 ……………………………… 334
12.1 单片机定时/计数器本质及区别…………………………………………………… 335
12.2 STM8S单片机定时/计数器资源…………………………………………………… 336
12.2.1 STM8S定时/计数器分类……………………………………………………… 336
12.2.2 STM8S208MB定时器/计数器简介………………………………………… 337
12.3 TIM4系统结构及配置方法………………………………………………………… 338
12.3.1 如何理解计数模式? …………………………………………………………… 340
12.3.2 更新事件UEV 的意义………………………………………………………… 341
12.3.3 TIM4初始化流程及配置……………………………………………………… 342
12.4 TIM4相关寄存器简介……………………………………………………………… 343
12.4.1 TIM4_CR1控制寄存器1 …………………………………………………… 344
12.4.2 TIM4_IER中断使能寄存器…………………………………………………… 346
12.4.3 TIM4_SR状态寄存器………………………………………………………… 346
12.4.4 TIM4_EGR事件产生寄存器………………………………………………… 347
12.4.5 TIM4_CNTR计数器………………………………………………………… 348
12.4.6 TIM4_PSCR预分频寄存器…………………………………………………… 348
12.4.7 TIM4_ARR自动重装载寄存器……………………………………………… 349
12.5 基础项目A 自定义1Hz信号输出实验…………………………………………… 349
第13章 “多才多艺,功能王者”16位高级型定时/计数器TIM1 ………………………… 353
第14章 “摇身一变睡美人儿”电源模式管理及系统功耗控制…………………………… 451
第15章 “哔啵哔啵~滴滴~”蜂鸣器激励信号产生与控制……………………………… 477
第16章 “系统状态监察/执行官”独立/窗口看门狗配置及应用………………………… 496
第17章 “你来我往,烽火传信”串行数据通信及UART应用…………………………… 522
第18章 “通信神功,脚踏独木桥”1-Wire单总线器件编程及应用……………………… 613
第19章 “击鼓声响,双向传花”串行外设接口SPI配置及应用…………………………… 648
第20章 “大老爷升堂,威武!”串行总线接口I2C配置及应用…………………………… 713
第21章 “对内翻译官”A/D 模数转换器原理及应用……………………………………… 764
展开
——凌观胜风驰STM8开源开发平台研发工程师
一直以来,如何以通俗易懂的描述向读者呈现一个复杂的芯片内核结构是所有技术类书籍所要面对的一大难题,而该书很巧妙地解决了该问题,全书用众多生动的插图故事向读者解说单片机内核,以及如何使用STM8系列单片机,可谓惟妙惟肖,栩栩如生。而在机器人的控制中,STM8系列单片机更是占据很大市场份额,愿借以此书带领更多读者走进机器人的世界。
——赖荣杰中山市大谷电子科技有限公司总经理
这是一本非常有趣的书,可以用“大话单片机”来称呼本书,那些深奥枯燥的STM8单片机知识都被作者以独具匠心、幽默直白的语言描述了出来,书中处处可见形象的比喻,知识点非常丰富,让读者学习起来兴趣盎然、简单易懂。这是一本非常适合初学者的好书,值得为大家推荐。
——王浩北京凌阳爱普科技有限公司(大区经理)
STM8系列是意法半导体公司生产的高性能8位单片机,在8位单片机市场具备非常强的竞争力,是否能够快速掌握和应用这款单片机将是提高自己产品xing价比非常重要的事情,该书可以让我们掌握STM8更加得心应手。该书单从目录上看就引人入胜,引起读者极大的阅读兴趣,给人眼前一亮的感觉。内容更是精益求精,不仅详细讲解了技术原理,更加突出了实践性,应用非常形象生动,给我的感觉就是可以在谈笑间掌握和理解抽象的技术知识,是一本非常具备实用价值的书籍。
——宋雪松《手把手教你学51单片机C语言版》作者
兴趣是最好的老师,如何对单片机产生学习的兴趣,如何将抽象和枯燥的技术原理讲好讲透,一直困扰着单片机教育者。纵览本书,语言诙谐、插图精致,用一个个精彩甚至有些无厘头的故事讲解STM8的内部结构和外设应用。层层递进,从入门、进阶到应用实例,思路清晰,代码丰富,让人哑然失笑之后,不由得佩服作者的良苦的用心、严谨的治学态度、规范的编程风格和深厚的文字功底。技术之路是孤独和枯燥的,本书做了很多有益的探索和创新,在读者的学习过程中上增添一些帮助和快乐,值得细细品读和反复练习。
——孙锡亮青岛英谷教育科技股份有限公司物联网项目部主管、教材编辑
单片机的书很多,但是真正懂学生的、按照学生能接受的方式写给学生看的书很少,而这本《深入浅出STM8单片机入门、进阶与应用实例》就是其中之一,能够用生动的语言把单片机的枯燥知识娓娓道来,很吸引人,也很好理解,强烈推荐这本书,也真心希望更多的人能写出这么棒的书献给亲爱的学生们!
——范红刚《AVR单片机自学笔记》《51单片机自学笔记》作者