本书系统介绍了STM32程序设计的基础知识和实战技巧。本书案例丰富、结构清晰、实用性强。本书可作为高职高专院校电类专业学生的教材使用,也可供相关工程技术人员作为参考用书
项目1 STM32的开发步骤及STM32的GPIO端口的输出功能 (1)
任务1-1 控制一颗LED发光二极管闪烁 (1)
1.1 初步认识STM32的GPIO端口的输出功能 (10)
1.2 寄存器及其地址信息 (15)
1.3 volatile修饰符的使用及寄存器定义 (17)
习题1 (18)
项目2 认识模块化编程 (19)
任务2-1 控制一颗LED发光二极管闪烁 (19)
2.1 模块化编程 (24)
2.2 其他C语言注意事项 (25)
2.2.1 用#define和typedef定义类型别名 (25)
2.2.2 一些常见的运算符问题 (25)
2.2.3 文件包含 (26)
2.2.4 关于注释 (27)
习题2 (28)
项目3 认识STM32的存储器结构 (29)
任务3-1 LED0闪烁控制 (29)
3.1 存储器基础知识 (30)
3.2 Cortex-M4内核和STM32的存储器结构 (31)
3.2.1 Cortex-M4内核的存储器结构 (31)
3.2.2 STM32的存储器结构 (33)
3.2.3 位带(Bit Band)及位带别名区(Bit Band Alias)的关系 (37)
3.3 结构体在STM32中的应用 (40)
3.4 通用的I/O端口功能设置函数的设计 (42)
任务3-2 跑马灯的实现 (44)
习题3 (47)
项目4 精确延时的实现—SysTick 定时器的原理及其应用 (48)
任务4-1 蜂鸣器发声控制 (48)
4.1 SysTick定时器介绍 (52)
4.2 嘀嗒定时器的延时应用 (55)
习题4 (57)
项目5 机械按键的识别——初步认识GPIO端口的输入功能 (58)
任务5-1 识别机械按键的按下与弹起 (58)
5.1 STM32的GPIO端口的数据输入功能 (65)
5.1.1 GPIO端口位的数据输入通道 (65)
5.1.2 GPIO端口位的输入配置及上/下拉电阻使能 (66)
5.2 按键状态的判断 (67)
习题5 (68)
项目6 深入了解STM32F407的时钟系统 (69)
6.1 STM32F4的时钟系统简介 (69)
6.2 STM32F4的时钟系统 (69)
6.3 STM32F4的系统时钟和各模块时钟 (72)
6.3.1 系统时钟SYSCLK (72)
6.3.2 由SYSCLK模块提供时钟源的时钟 (73)
6.3.3 RCC模块的相关寄存器及其作用 (75)
习题6 (77)
项目7 认识STM32的串口结构 (78)
任务7-1 使用STM32的串口向PC端发送字符串 (78)
7.1 串口基础知识 (83)
7.2 STM32的串口结构 (84)
7.3 引脚复用 (90)
7.4 端口初始化函数的重新组织 (93)
习题7 (95)
项目8 STM32F407的中断管理 (96)
任务8-1 使用STM32的外部中断 (96)
8.1 内嵌中断向量控制器NVIC对中断的控制 (102)
8.1.1 STM32的中断源 (102)
8.1.2 STM32的中断使能控制 (105)
8.1.3 STM32的中断优先级 (106)
8.1.4 中断函数接口及中断函数的实现 (112)
8.2 外部中断 (113)
8.2.1 外部中断的中断源 (113)
8.2.2 外部中断的设置 (114)
习题8 (116)
项目9 认识STM32的定时器 (118)
任务9-1 使用定时器中断控制LED0的闪烁 (118)
9.1 STM32的定时器概述 (122)
9.2 TIM3内部结构及其计数原理 (122)
9.2.1 TIM3的内部结构 (122)
9.2.2 STM32定时器的定时原理 (124)
9.3 定时器中断的实现 (127)
9.4 应用定时器产生PWM调制信号 (128)
9.4.1 TIM14的PWM调制原理 (130)
9.4.2 TIM14产生PWM信号涉及的寄存器 (132)
9.4.3 TIM14产生PWM信号的实现流程 (133)
任务9-2 使用TIM14产生周期为500s、占空比为80%的脉冲信号 (134)
习题9 (136)
项目10 认识STM32的独立看门狗 (137)
任务10-1 认识STM32的独立看门狗的工作原理 (137)
10.1 看门狗电路概述 (140)
10.2 STM32F407的看门狗电路 (140)
10.3 独立看门狗相关的寄存器 (141)
10.4 独立看门狗的设置、启动及工作流程 (142)
习题10 (143)
项目11 认识STM32F407的实时时钟 (144)
任务11-1 认识STM32的RTC (144)
11.1 RTC实时时钟介绍 (149)
11.2 STM32的RTC的工作原理 (149)
11.3 STM32的RTC的操作步骤 (153)
习题11 (155)
项目12 STM32迷你开发板电路设计 (156)
项目13 认识ARM处理器 (161)
13.1 架构简介 (161)
13.2 Cortex-M4的操作状态、工作模式和访问等级 (161)
13.3 数据长度 (162)
13.4 存储器大小端 (162)
13.5 Cortex-M4的寄存器 (163)
13.6 堆和栈的概念 (166)
13.7 内存分配 (167)
习题13 (170)
项目14 汇编语言基础和 Cortex-M4指令集 (172)
14.1 汇编语言基础 (172)
14.2 Cortex-M4的指令集 (174)
14.3 Cortex-M4的伪操作和伪指令 (180)
14.3.1 伪操作 (180)
14.3.2 伪指令 (186)
习题14 (187)
项目15 认识启动文件startup_stm32f40_41xxx.s (188)
习题15 (191)
附录A STM32F407ZGT6的引脚结构与功能 (192)
附录B STM32F407ZGT6核心电路设计 (203)
附录C STM32F407ZGT6外围电路设计 (204)
附录D 关于编译信息的解释 (205)
参考文献 (207)