内容简介
第1章 STM8单片机
1.1 什么是单片机
1.2 单片机都能干什么
1.3 学单片机一定要从51单片机开始吗
1.4 STM8单片机的家族成员介绍
1.4.1 STM8S单片机的型号列表
1.4.2 如何查看STM8单片机数据手册
1.5 本书的主角——STM8S208RB
第2章 学STM8单片机都需要准备什么
2.1 STM8单片机程序开发环境
2.1.1 STVD开发环境安装
2.1.2 CXSTM8编译器的安装
2.1.3 CXSTM8的注册
2.1.4 STVD和CXSTM8牵手
2.1.5 如何创建自己的第一个工程
2.2 实验设备
2.2.1 本书中的实验开发板
2.2.2 USB转串口下载线
2.2.3 ST-Link仿真器
2.3 C语言你OK了吗
2.3.1 C语言的四梁八柱——C语言程序的基本结构
2.3.2 C语言的基本字符、标识符和关键字
2.3.3 C语言中的基本数据类型
2.3.4 C语言中的运算符及其优先级
2.3.5 利益共同体——函数
2.3.6 物以类聚说数组
2.3.7 “指桑骂槐”言指针
2.3.8 结构体
2.3.9 共用体
2.3.10 枚举类型取值
2.4 古老神灯闪烁实验全过程
2.4.1 硬件电路介绍
2.4.2 建工程编程序
2.4.3 将程序下载到STM8内
第3章 STM8单片机的触角——I/O口的应用
3.1 玩转I/O口必备的“五器”
3.1.1 悬浮与上拉
3.1.2 开漏与推挽
3.2 LED孤独地闪着
3.3 跑马灯是怎么跑的
3.3.1 应用switch-case语句设计跑马灯
3.3.2 用for循环“遛马”
3.3.3 数组与万能流水灯
3.4 STM8控制数码管
3.4.1 STM8直接驱动一个数码管
3.4.2 STM8控制8个数码管
3.5 独立按键的应用
3.5.1 启用内部上拉检测按键状态
3.5.2 浮空输入+外部上拉检测按键状态
3.6 使用固件库点亮神灯
3.6.1 什么是固件库
3.6.2 建立第一个包含库的工程
3.6.3 神灯再亮引出的固件库中的那些知识
第4章 时钟控制器
4.1 STM8的3颗“心脏”
4.1.1 外部晶体/陶瓷谐振器和外部时钟信号
4.1.2 高速内部RC振荡器(HSI)
4.1.3 低速内部RC振荡器(LSI)
4.2 HSI作为主时钟源
4.2.1 HSI分频寄存器
4.2.2 “心律不齐”的LED
4.3 HSE作为主时钟源
4.3.1 自动切换时钟源
4.3.2 手动切换时钟源
4.4 LSI作为主时钟源
4.5 打造不死之身——时钟安全系统(CSS)
4.6 可配置时钟输出功能
第5章 STM8片外告急——外部中断的应用
5.1 中断的意义及程序执行的过程
5.2 STM8S208RB有哪些中断源
5.2.1 无法阻挡的家伙——不可屏蔽中断
5.2.2 任人宰割的特使——可屏蔽中断
5.3 谁可以中断谁
5.3.1 人人平等——非嵌套模式
5.3.2 软实力与硬实力谁更硬——嵌套中断模式
5.4 细说外部中断“4器”
5.4.1 CPU条件寄存器CCR
5.4.2 软件优先级寄存器ITC_SPRx
5.4.3 外部中断控制寄存器EXTI_CR1与EXTI_CR2
5.5 外部中断应用之独立按键
5.5.1 直接设置寄存器方式
5.5.2 库函数方式
5.6 中断嵌套
5.6.1 非嵌套模式
5.6.2 中断嵌套模式
5.6.3 为什么在中断中关“总中断”失灵
第6章 定时器家族中的小四儿——TIM4
6.1 TIM4定时器是怎么工作的
6.1.1 为TIM4工作提供“心跳”的时钟源
6.1.2 TIM4定时工作过程
6.2 TIM4相关寄存器
6.2.1 控制寄存器1(TIM4_CR1)
6.2.2 中断使能寄存器(TIM4_IER)
6.2.3 状态寄存器(TIM4_SR)
6.2.4 事件产生寄存器(TIM4_EGR)
6.2.5 计数器(TIM4_CNTR)
6.2.6 预分频寄存器(TIM4_PSCR)
6.2.7 自动重装载寄存器(TIM4_ARR)
6.3 定时500ms让LED闪起来
6.3.1 寄存器方式
6.3.2 库函数方式
6.4 简易数字时钟
第7章 定时器家族中的大哥大——TIM1
7.1 应用TIM1的定时功能产生1Hz方波信号
7.1.1 产生方波信号的程序设计思想
7.1.2 初始化TIM1的具体步骤
7.1.3 单片机I/O口的设置步骤
7.1.4 寄存器方式的完整程序
7.1.5 库函数方式完整程序
7.2 计数功能——会数数的TIM1
7.2.1 外部时钟源模式1——从捕获/比较通道数数
7.2.2 外部时钟源模式2——从外部触发引脚数脉冲数
7.3 输入捕获——测量周期和占空比
7.3.1 输入捕获概述
7.3.2 捕获输入信号进入单片机后的“走向”
7.3.3 测量方波信号的周期
7.3.4 测量PWM信号的占空比
7.4 输出比较——TIM1产生的那些波形
7.4.1 PWM输出概述
7.4.2 输出模块
7.4.3 PWM控制直流电机转速
7.4.4 单脉冲在调光灯中的应用
7.4.5 产生3路SPWM信号
7.5 编码器接口
7.5.1 编码器原理
7.5.2 电路图
7.5.3 程序代码
第8章 通用串行接口UART的应用
8.1 UART配置步骤及通信过程
8.1.1 发送器的配置及单字节通信过程
8.1.2 接收器的配置及单字节通信过程
8.2 STM8单片机与PC机之间通信
8.2.1 硬件电路图
8.2.2 直接操作寄存器方式的程序
8.2.3 采用库函数方式的程序
第9章 模数转换器的应用
9.1 模拟世界与数字世界
9.1.1 何为模拟、何为数字
9.1.2 模拟量与数字量是怎么转换的
9.2 STM8单片机的“北冥神功”是如何练成的
9.2.1 主要功能
9.2.2 A/D转换过程
9.3 简易数字电压表
9.3.1 硬件电路
9.3.2 寄存器方式实现的程序代码
9.3.3 库函数方式实现的程序代码
9.4 PC机上绘图显示声音信号
第10章 同步串行SPI接口的应用
10.1 互换信物——SPI的传输原理
10.2 SPI接口应用举例
10.2.1 查询法实现两个单片机的SPI接口之间通信
10.2.2 中断法实现两个单片机的SPI接口之间通信
10.2.3 加入CRC功能实现两个单片机的SPI接口通信
第11章 I2C总线接口的应用
11.1 I2C总线接口简介
11.2 I2C总线是怎么工作的
11.3 两个STM8单片机之间通信
11.3.1 硬件电路图
11.3.2 建立工程
11.3.3 程序流程分析
11.3.4 程序代码
11.3.5 通信时序图
11.4 STM8单片机的I2C总线控制EEPROM存储器AT24C256
11.4.1 AT24C256非易失性EEPROM存储器简介
11.4.2 硬件电路图
11.4.3 建立工程
11.4.4 EEPROM操作函数
11.4.5 程序流程
第12章 STM8补充知识
12.1 操作STM8内部EEPROM
12.1.1 存储器组织结构
12.1.2 存储器存取安全系统(MASS)
12.1.3 随时保存状态的流水灯
12.2 什么是Option Byte
12.2.1 选项字节描述
12.2.2 使用STVP修改OPT
12.2.3 通过程序修改OPT
12.3 绿色节能从STM8做起——STM8电源管理
12.3.1 常规降低功耗的办法
12.3.2 STM8低功耗模式
12.3.3 附加的模拟功耗控制
12.4 自动唤醒(AWU)
12.5 简单实用的Beep
12.6 看门狗
12.6.1 独立看门狗
12.6.2 窗口看门狗
附录 Cosmic编译器
参考文献