第1章�嵌入式系统概述
�1.1�嵌入式系统简介
��1.1.1�嵌入式系统定义
��1.1.2�嵌入式系统特点
��1.1.3�嵌入式系统分类
��1.1.4�嵌入式系统发展
�1.2�ARM体系结构及微处理器系列
��1.2.1�ARM公司简介
��1.2.2�ARM体系结构简介
�1.3�Cortex-M系列处理器简介
�1.4�STM32系列微控制器简介
�1.5�STM32教学开发板
第2章�Cortex-M3体系结构
�2.1�CM3微处理器核结构
�2.2�处理器的工作模式及状态
�2.3�寄存器
�2.4�总线接口
�2.5�存储器的组织与映射
��2.5.1�存储器格式
��2.5.2�存储器层次结构
��2.5.3�CM3存储器组织
��2.5.4�STM32存储器映射
��2.5.5�位绑定操作
�2.6�指令集
��2.6.1�ARM指令集
��2.6.2�Thumb指令集
��2.6.3�Thumb-2指令集
�2.7�流水线
�2.8�异常和中断
�2.9�存储器保护单元MPU
�2.10�STM32微控制器概述
��2.10.1�STM32命名
��2.10.2�STM32内部资源
第3章�STM32最小系统
�3.1�电源电路
��3.1.1�供电方案
��3.1.2�电源管理器
��3.1.3�低功耗模式
�3.2�时钟电路
��3.2.1�HSE时钟和HSI时钟
��3.2.2�PLL
��3.2.3�LSE时钟和LSI时钟
��3.2.4�系统时钟SYSCLK
��3.2.5�RCC寄存器
�3.3�复位电路
�3.4�STM32启动
�3.5�程序下载电路
�3.6�STM32最小系统
第4章�STM32程序设计
�4.1�嵌入式软件层次结构
�4.2�Cortex微控制器软件接口标准
�4.3�FWLib固件库
��4.3.1�STM32标准外设库
��4.3.2�固件库命名规则
��4.3.3�数据类型和结构
��4.3.4�固件库的应用
�4.4�嵌入式C程序特点
�4.5�开发环境简介
第5章�GPIO原理及应用
�5.1�GPIO的硬件结构和功能
��5.1.1�GPIO硬件结构
��5.1.2�复用功能
��5.1.3�GPIO输入功能
��5.1.4�GPIO输出功能
��5.1.5�GPIO速度选择
��5.1.6�钳位功能
�5.2�GPIO寄存器
�5.3�GPIO库函数
�5.4�库函数和寄存器的关系
�5.5�应用实例
第6章�EXTI原理及应用
�6.1�STM32中断通道
�6.2�STM32中断的过程
�6.3�NVIC硬件结构及软件配置
��6.3.1�NVIC硬件结构
��6.3.2�STM32中断优先级
��6.3.3�中断向量表
��6.3.4�NVIC寄存器
��6.3.5�NVIC库结构
�6.4�EXTI硬件结构及软件配置
��6.4.1�EXTI硬件结构
��6.4.2�中断及事件
��6.4.3�EXTI中断通道和中断源
��6.4.4�EXTI寄存器
��6.4.5�EXTI库函数
�6.5�应用实例
��6.5.1�按键中断
��6.5.2�中断嵌套案例1
��6.5.3�中断嵌套案例2
第7章�USART原理及应用
�7.1�端口重映射
�7.2�USART功能和结构
��7.2.1�USART功能
��7.2.2�USART结构
�7.3�USART帧格式
�7.4�波特率设置
�7.5�硬件流控制
�7.6�USART中断请求
�7.7�USART寄存器
�7.8�USART库函数
�7.9�USART应用实例
��7.9.1�直接传送方式
��7.9.2�中断传送方式
��7.9.3�串口Echo回应程序
��7.9.4�利用printf()的串口编程
第8章�定时器原理及应用
�8.1�STM32定时器概述
�8.2�通用定时器TIMx功能
�8.3�通用定时器TIMx结构
��8.3.1�时钟源选择
��8.3.2�时基单元
��8.3.3�捕获和比较通道
��8.3.4�计数器模式
��8.3.5�定时时间的计算
��8.3.6�定时器中断
�8.4�通用定时器TIMx寄存器
�8.5�通用定时器TIMx库函数
�8.6�TIM2应用实例
��8.6.1�秒表
��8.6.2�输出比较案例1
��8.6.3�输出比较案例2
��8.6.4�PWM输出
��8.6.5�PWM输入捕获
�8.7�RTC的功能及结构
��8.7.1�RTC的基本功能
��8.7.2�RTC的内部结构
�8.8�RTC控制寄存器
�8.9�备份寄存器
�8.10�电源控制寄存器
�8.11�RTC相关的RCC寄存器
�8.12�RTC应用实例
�8.13�系统时钟SysTick简介
�8.14�SysTick寄存器
��8.14.1�控制及状态寄存器(SYSTICKCSR)
��8.14.2�重载寄存器(SYSTICKRVR)
��8.14.3�当前值寄存器(SYSTICKCVR)
��8.14.4�校准值寄存器(SYSTICKCALVR)
�8.15�SysTick应用实例
第9章�DMA原理及应用
�9.1�DMA简介
�9.2�DMA的功能及结构
��9.2.1�DMA的功能
��9.2.2�DMA结构
�9.3�DMA寄存器
�9.4�DMA库函数
第10章�ADC原理及应用
�10.1�ADC的功能及结构
�10.2�ADC的工作模式
�10.3�数据对齐
�10.4�ADC中断
�10.5�ADC寄存器
�10.6�ADC库函数
�10.7�应用实例
第11章�μC/OS-II嵌入式操作系统基础
�11.1�操作系统的功能
�11.2�操作系统的基本概念
��11.2.1�进程和线程
��11.2.2�实时操作系统RTOS
��11.2.3�其他概念
��11.2.4�应用程序在操作系统上的执行过程
�11.3�操作系统的分类
��11.3.1�单体结构
��11.3.2�层次结构
��11.3.3�微内核结构
�11.4�μC/OS-II简介
��11.4.1�μC/OS-II的主要特点
��11.4.2�μC/OS-II工作原理
��11.4.3�μC/OS-II的程序设计模式
�11.5�μC/OS-II移植
��11.5.1�移植条件
��11.5.2�移植步骤
��11.5.3�内核头文件(OS_CPU�H)
��11.5.4�与处理器相关的汇编代码(OS_CPU_A�ASM)
��11.5.5�与CPU相关的C函数和钩子函数(OS_CPU_C�C)
第12章�μC/OS-Ⅱ的内核机制
�12.1�μC/OS-II内核结构
��12.1.1�μC/OS-II的任务
��12.1.2�临界代码
��12.1.3�任务控制块
��12.1.4�就绪表
��12.1.5�任务的调度
��12.1.6�中断处理
��12.1.7�时钟节拍
��12.1.8�任务的初始化
��12.1.9�任务的启动
�12.2�μC/OS-II的任务管理
��12.2.1�创建任务
��12.2.2�删除任务
��12.2.3�请求删除任务
��12.2.4�改变任务优先级
��12.2.5�挂起任务
��12.2.6�恢复任务
��12.2.7�任务调度实例
�12.3�μC/OS-II的时间管理
��12.3.1�延时函数
��12.3.2�恢复延时任务
��12.3.3�系统时间
�12.4�任务间的通信与同步
��12.4.1�事件控制块
��12.4.2�信号量
��12.4.3�信号量实例
第13章�嵌入式系统综合设计实例
�13.1�嵌入式系统开发过程
�13.2�自平衡小车基本功能
�13.3�硬件结构
��13.3.1�电气控制系统整体结构
��13.3.2�加速度计
��13.3.3�陀螺仪
�13.4�控制算法设计
��13.4.1�角度检测算法设计
��13.4.2�运动控制算法设计
附录A�嵌入式系统常用缩写和关于端口读/写的缩写表示
附录B�Cortex-M3指令清单
附录C�51单片机与STM32微控制器的比较
�C.1�硬件:寄存器
�C.2�硬件:存储器空间
�C.3�硬件:堆栈
�C.4�硬件:外设
�C.5�硬件:异常和中断
�C.6�软件:数据类型
�C.7�软件:浮点
�C.8�软件:中断服务程序
�C.9�软件:非对齐数据
�C.10�软件:故障异常
�C.11�软件:设备驱动程序和CMSIS
�C.12�软件:混用C语言和汇编程序
�C.13�其他比较
附录D�STM32实验板原理图
参考文献
展开