出版社:电子工业出版社
年代:2014
定价:59.8
本书介绍了意法半导体(STMicroelectronics,ST)公司的32位基于ARM Cortex-M3内核的STM32单片机原理与实践。本书以培养学生的动手能力和增强学生的工程素养为目的,按照项目驱动的思路展开教学与实践学习,以自制的开发板上的程序为实例,将STM32单片机的外围引脚特性、内部结构原理、片上外设资源、开发设计方法和应用软件编程、μC/OS-Ⅱ操作系统原理及应用等知识传授给读者。
第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实验板原理图
参考文献
陈志旺, 等编著
(美) 莫顿 (Morton,T.D.) , 著
( ) 莫顿 (Morton,T.D.) , 著
薛丽萍, 编著
杨百军, 王学春, 黄雅琴, 编著
马维华, 编著
谭大为, 张有光, 刘晚春, 编著
彭刚, 秦志强, 姚昱, 编著
彭刚, 秦志强, 编著