科技
类型
可以朗读
语音朗读
861千字
字数
2017-02-01
发行日期
展开全部
主编推荐语
着重讲解STM32F429的外设以及外设的应用,让你可以零死角地玩转STM32F429。
内容简介
本书的主要内容将着重介绍STM32的库函数,以及如何使用库的方式进行开发。使初学者能够快速入门能够在此基础上迅速入门,掌握STM32的开发方法。本书内容基于ARM-Cortex M3内核的STM32F429芯片,紧紧围绕“库”展开,系统地讲述了STM32固件库的原理、使用方法。
目录
- 版权信息
- 前言
- 第1章 如何安装KEIL5
- 1.1 温馨提示
- 1.2 获取KEIL5安装包
- 1.3 开始安装KEIL5
- 1.4 安装STM32芯片包
- 第2章 如何用DAP仿真器下载程序
- 2.1 仿真器简介
- 2.2 硬件连接
- 2.3 仿真器配置
- 2.4 选择目标板
- 2.5 下载程序
- 第3章 初识STM32
- 3.1 什么是STM32
- 3.2 STM32能做什么
- 3.2.1 智能手环
- 3.2.2 微型四轴飞行器
- 3.2.3 淘宝众筹
- 3.3 STM32选型
- 3.3.1 STM32分类
- 3.3.2 STM32命名方法
- 3.3.3 选择合适的MCU
- 第4章 寄存器
- 4.1 寄存器简介
- 4.2 STM32的外观
- 4.3 芯片里面有什么
- 4.4 存储器映射
- 4.5 寄存器映射
- 4.5.1 STM32的外设地址映射
- 4.5.2 C语言对寄存器的封装
- 第5章 新建工程——寄存器版
- 5.1 新建本地工程文件夹工程
- 5.1.1 新建本地工程文件夹
- 5.1.2 新建工程
- 5.2 下载程序
- 第6章 使用寄存器点亮LED
- 6.1 GPIO简介
- 6.2 GPIO框图剖析
- 6.2.1 基本结构分析
- 6.2.2 GPIO工作模式
- 6.3 实验:使用寄存器点亮LED
- 6.3.1 硬件连接
- 6.3.2 启动文件
- 6.3.3 stm32f4xx.h文件
- 6.3.4 main文件
- 6.3.5 下载验证
- 第7章 自己写库——构建库函数雏形
- 7.1 STM32函数库简介
- 7.2 采用库来开发及学习的原因
- 7.3 实验:构建库函数雏形
- 7.3.1 修改寄存器地址封装
- 7.3.2 定义访问外设的结构体指针
- 7.3.3 定义初始化结构体
- 7.3.4 定义引脚模式的枚举类型
- 7.3.5 定义GPIO初始化函数
- 7.3.6 使用函数点亮LED
- 7.3.7 下载验证
- 7.3.8 总结
- 第8章 初识STM32标准库
- 8.1 CMSIS标准及库层次关系
- 8.1.1 库目录、文件简介
- 8.1.2 各库文件间的关系
- 8.2 使用帮助文档
- 8.2.1 常用官方资料
- 8.2.2 初识库函数
- 第9章 新建工程——库函数版
- 9.1 新建本地工程文件夹
- 9.2 新建工程
- 9.3 配置魔术棒选项卡
- 9.4 下载器配置
- 9.5 选择Flash大小
- 第10章 GPIO输出——使用固件库点亮LED
- 10.1 硬件设计
- 10.2 软件设计
- 10.2.1 编程要点
- 10.2.2 代码分析
- 10.2.3 下载验证
- 10.3 STM32标准库补充知识
- 第11章 GPIO输入——按键检测
- 11.1 硬件设计
- 11.2 软件设计
- 11.2.1 编程要点
- 11.2.2 代码分析
- 11.2.3 下载验证
- 第12章 GPIO——位带操作
- 12.1 位带简介
- 12.1.1 外设位带区
- 12.1.2 SRAM位带区
- 12.1.3 位带区和位带别名区地址转换
- 12.2 GPIO位带操作
- 第13章 启动文件
- 13.1 启动文件简介
- 13.2 查找ARM汇编指令
- 13.3 启动文件代码讲解
- 第14章 RCC——使用HSE/HSI配置时钟
- 14.1 RCC主要作用——时钟部分
- 14.2 RCC框图剖析——时钟树
- 14.2.1 系统时钟
- 14.2.2 其他时钟
- 14.3 配置系统时钟实验
- 14.3.1 使用HSE
- 14.3.2 使用HSI
- 14.3.3 硬件设计
- 14.3.4 软件设计
- 14.3.5 下载验证
- 第15章 STM32中断应用概览
- 15.1 异常类型
- 15.2 NVIC简介
- 15.2.1 NVIC寄存器简介
- 15.2.2 NVIC中断配置固件库
- 15.3 优先级的定义
- 15.3.1 优先级定义
- 15.3.2 优先级分组
- 15.4 中断编程
- 第16章 EXTI——外部中断/事件控制器
- 16.1 EXTI简介
- 16.2 EXTI功能框图
- 16.3 中断/事件线
- 16.4 EXTI初始化结构体详解
- 16.5 外部中断控制实验
- 16.5.1 硬件设计
- 16.5.2 软件设计
- 16.5.3 下载验证
- 第17章 SysTick——系统定时器
- 17.1 SysTick简介
- 17.2 SysTick寄存器介绍
- 17.3 SysTick定时实验
- 17.3.1 硬件设计
- 17.3.2 软件设计
- 第18章 通信的基本概念
- 18.1 串行通信与并行通信
- 18.2 全双工、半双工及单工通信
- 18.3 同步通信与异步通信
- 18.4 通信速率
- 第19章 USART——串口通信
- 19.1 串口通信协议简介
- 19.1.1 物理层
- 19.1.2 协议层
- 19.2 STM32的USART简介
- 19.3 USART功能框图
- 19.4 USART初始化结构体详解
- 19.5 USART1接发通信实验
- 19.5.1 硬件设计
- 19.5.2 软件设计
- 19.5.3 下载验证
- 19.6 USART1指令控制RGB彩灯实验
- 19.6.1 硬件设计
- 19.6.2 软件设计
- 19.6.3 下载验证
- 第20章 DMA
- 20.1 DMA简介
- 20.2 DMA功能框图
- 20.3 DMA数据配置
- 20.4 DMA初始化结构体详解
- 20.5 DMA存储器到存储器模式实验
- 20.5.1 硬件设计
- 20.5.2 软件设计
- 20.5.3 下载验证
- 20.6 DMA存储器到外设模式实验
- 20.6.1 硬件设计
- 20.6.2 软件设计
- 20.6.3 下载验证
- 第21章 常用存储器介绍
- 21.1 存储器种类
- 21.2 RAM存储器
- 21.2.1 DRAM
- 21.2.2 SRAM
- 21.2.3 DRAM与SRAM的应用场合
- 21.3 非易失性存储器
- 21.3.1 ROM存储器
- 21.3.2 Flash存储器
- 第22章 I2C——读写EEPROM
- 22.1 I2C协议简介
- 22.1.1 I2C物理层
- 22.1.2 协议层
- 22.2 STM32的I2C特性及架构
- 22.2.1 STM32的I2C外设简介
- 22.2.2 STM32的I2C架构剖析
- 22.2.3 通信过程
- 22.3 I2C初始化结构体详解
- 22.4 I2C——读写EEPROM实验
- 22.4.1 硬件设计
- 22.4.2 软件设计
- 22.4.3 下载验证
- 第23章 SPI——读写串行Flash
- 23.1 SPI协议简介
- 23.1.1 SPI物理层
- 23.1.2 协议层
- 23.2 STM32的SPI特性及架构
- 23.2.1 STM32的SPI外设简介
- 23.2.2 STM32的SPI架构剖析
- 23.2.3 通信过程
- 23.3 SPI初始化结构体详解
- 23.4 SPI——读写串行Flash实验
- 23.4.1 硬件设计
- 23.4.2 软件设计
- 23.4.3 下载验证
- 第24章 串行Flash文件系统FatFs
- 24.1 文件系统
- 24.2 FatFs文件系统简介
- 24.2.1 FatFs的目录结构
- 24.2.2 FatFs帮助文档
- 24.2.3 FatFs源码
- 24.3 FatFs文件系统移植实验
- 24.3.1 FatFs程序结构图
- 24.3.2 硬件设计
- 24.3.3 FatFs移植步骤
- 24.3.4 FatFs底层设备驱动函数
- 24.3.5 FatFs功能配置
- 24.3.6 FatFs功能测试
- 24.3.7 下载验证
- 24.4 FatFs功能使用实验
- 24.4.1 硬件设计
- 24.4.2 软件设计
- 24.4.3 下载验证
- 第25章 FMC——扩展外部SDRAM
- 25.1 SDRAM控制原理
- 25.1.1 SDRAM信号线
- 25.1.2 控制逻辑
- 25.1.3 地址控制
- 25.1.4 SDRAM的存储阵列
- 25.1.5 数据输入输出
- 25.1.6 SDRAM的命令
- 25.1.7 SDRAM的初始化流程
- 25.1.8 SDRAM的读写流程
- 25.2 FMC简介
- 25.3 FMC框图剖析
- 25.4 FMC的地址映射
- 25.5 SDRAM时序结构体
- 25.6 SDRAM初始化结构体
- 25.7 SDRAM命令结构体
- 25.8 FMC——扩展外部SDRAM实验
- 25.8.1 硬件设计
- 25.8.2 软件设计
- 25.8.3 下载验证
- 第26章 LTDC/DMA2D——液晶显示
- 26.1 显示器简介
- 26.1.1 液晶显示器
- 26.1.2 LED和OLED显示器
- 26.1.3 显示器的基本参数
- 26.2 液晶屏控制原理
- 26.2.1 液晶面板的控制信号
- 26.2.2 液晶数据传输时序
- 26.2.3 显存
- 26.3 LTDC液晶控制器简介
- 26.3.1 图像数据混合
- 26.3.2 LTDC结构框图剖析
- 26.4 DMA2D图形加速器简介
- 26.5 LTDC初始化结构体
- 26.6 LTDC层级初始化结构体
- 26.7 DMA2D初始化结构体
- 26.8 LTDC/DMA2D——液晶显示实验
- 26.8.1 硬件设计
- 26.8.2 软件设计
- 26.8.3 下载验证
- 第27章 LTDC——液晶显示中英文
- 27.1 字符编码
- 27.1.1 ASCII编码
- 27.1.2 中文编码
- 27.1.3 Unicode字符集和编码
- 27.1.4 UTF-32
- 27.1.5 UTF-16
- 27.1.6 UTF-8
- 27.1.7 BOM
- 27.2 字模简介
- 27.2.1 字模的构成
- 27.2.2 字模显示原理
- 27.2.3 如何制作字模
- 27.2.4 字模寻址公式
- 27.2.5 存储字模文件
- 27.3 LTDC——各种模式的液晶显示字符实验
- 27.3.1 硬件设计
- 27.3.2 显示ASCII编码的字符
- 27.3.3 显示GB2312编码的字符
- 27.3.4 显示任意大小的字符
- 27.3.5 下载验证
- 第28章 电容触摸屏——触摸画板
- 28.1 触摸屏简介
- 28.1.1 电阻触摸屏检测原理
- 28.1.2 电容触摸屏检测原理
- 28.2 电容触摸屏控制芯片
- 28.2.1 GT9157芯片的引脚
- 28.2.2 上电时序与I2C设备地址
- 28.2.3 寄存器配置
- 28.2.4 读取坐标信息
- 28.3 电容触摸屏——触摸画板实验
- 28.3.1 硬件设计
- 28.3.2 软件设计
- 28.3.3 下载验证
- 第29章 ADC——电压采集
- 29.1 ADC简介
- 29.2 ADC功能框图剖析
- 29.2.1 ADC功能
- 29.2.2 电压转换
- 29.3 ADC初始化结构体详解
- 29.4 独立模式单通道采集实验
- 29.4.1 硬件设计
- 29.4.2 软件设计
- 29.4.3 下载验证
- 29.5 独立模式多通道采集实验
- 29.5.1 硬件设计
- 29.5.2 软件设计
- 29.5.3 下载验证
- 29.6 三重ADC交替模式采集实验
- 29.6.1 硬件设计
- 29.6.2 软件设计
- 29.6.3 下载验证
- 第30章 TIM——基本定时器
- 30.1 TIM简介
- 30.2 基本定时器
- 30.3 基本定时器功能框图
- 30.4 定时器初始化结构体详解
- 30.5 基本定时器定时实验
- 30.5.1 硬件设计
- 30.5.2 软件设计
- 30.5.3 下载验证
- 第31章 TIM——高级定时器
- 31.1 高级控制定时器
- 31.2 高级控制定时器功能框图
- 31.3 输入捕获应用
- 31.3.1 测量脉宽或者频率
- 31.3.2 PWM输入模式
- 31.4 输出比较应用
- 31.5 定时器初始化结构体详解
- 31.6 PWM互补输出实验
- 31.6.1 硬件设计
- 31.6.2 软件设计
- 31.6.3 下载验证
- 31.7 PWM输入捕获实验
- 31.7.1 硬件设计
- 31.7.2 软件设计
- 31.7.3 下载验证
- 第32章 TIM——电容按键检测
- 32.1 电容按键原理
- 32.2 电容按键检测实验
- 32.2.1 硬件设计
- 32.2.2 软件设计
- 32.2.3 下载验证
- 第33章 SDIO——SD卡读写测试
- 33.1 SDIO简介
- 33.2 SD卡物理结构
- 33.3 SDIO总线
- 33.3.1 总线拓扑
- 33.3.2 总线协议
- 33.3.3 命令
- 33.3.4 响应
- 33.4 SD卡的操作模式及切换
- 33.4.1 SD卡的操作模式
- 33.4.2 卡识别模式
- 33.4.3 数据传输模式
- 33.5 STM32的SDIO功能框图
- 33.6 SDIO初始化结构体
- 33.7 SDIO命令初始化结构体
- 33.8 SDIO数据初始化结构体
- 33.9 SD卡读写测试实验
- 33.9.1 硬件设计
- 33.9.2 软件设计
- 33.9.3 下载验证
- 第34章 基于SD卡的FatFs文件系统
- 34.1 FatFs移植步骤
- 34.2 FatFs接口函数
- 34.3 FatFs功能测试
- 第35章 I2S——音频播放与录音输入
- 35.1 I2S简介
- 35.1.1 数字音频技术
- 35.1.2 I2S总线接口
- 35.1.3 音频数据传输协议标准
- 35.2 I2S功能框图
- 35.3 WM8978音频编译码器
- 35.4 WAV格式文件
- 35.4.1 RIFF文件规范
- 35.4.2 WAV文件
- 35.4.3 WAV文件实例分析
- 35.5 I2S初始化结构体详解
- 35.6 录音与回放实验
- 35.6.1 硬件设计
- 35.6.2 软件设计
- 35.6.3 下载验证
- 35.7 MP3播放器
- 35.7.1 MP3文件结构
- 35.7.2 MP3解码库
- 35.7.3 Helix解码库移植
- 35.7.4 MP3播放器功能实现
- 35.7.5 下载验证
- 第36章 ETH——LwIP以太网通信
- 36.1 互联网模型
- 36.2 以太网
- 36.2.1 PHY层
- 36.2.2 MAC子层
- 36.3 TCP/IP协议栈
- 36.3.1 需要协议栈的原因
- 36.3.2 各网络层的功能
- 36.4 以太网外设
- 36.4.1 SMI接口
- 36.4.2 MII和RMII接口
- 36.4.3 MAC数据包发送和接收
- 36.4.4 MAC过滤
- 36.5 PHY:LAN8720A
- 36.6 LwIP:轻型TCP/IP协议栈
- 36.7 ETH初始化结构体详解
- 36.8 以太网通信实验:无操作系统LwIP移植
- 36.8.1 硬件设计
- 36.8.2 移植步骤
- 36.8.3 下载验证
- 36.9 基于μCOS-III移植LwIP实验
- 第37章 CAN——通信实验
- 37.1 CAN协议简介
- 37.1.1 CAN物理层
- 37.1.2 协议层
- 37.2 STM32的CAN外设简介
- 37.3 CAN初始化结构体
- 37.4 CAN发送及接收结构体
- 37.5 CAN筛选器结构体
- 37.6 CAN——双机通信实验
- 37.6.1 硬件设计
- 37.6.2 软件设计
- 37.6.3 下载验证
- 第38章 RS-485通信实验
- 38.1 RS-485通信协议简介
- 38.2 RS-485——双机通信实验
- 38.2.1 硬件设计
- 38.2.2 软件设计
- 38.2.3 下载验证
- 第39章 电源管理——实现低功耗
- 39.1 STM32的电源管理简介
- 39.1.1 电源监控器
- 39.1.2 STM32的电源系统
- 39.1.3 STM32的功耗模式
- 39.2 电源管理相关的库函数及命令
- 39.2.1 配置PVD监控功能
- 39.2.2 WFI与WFE命令
- 39.2.3 进入停止模式
- 39.2.4 进入待机模式
- 39.3 PWR——睡眠模式实验
- 39.3.1 硬件设计
- 39.3.2 软件设计
- 39.3.3 下载验证
- 39.4 PWR——停止模式实验
- 39.4.1 硬件设计
- 39.4.2 软件设计
- 39.4.3 下载验证
- 39.5 PWR——待机模式实验
- 39.5.1 硬件设计
- 39.5.2 软件设计
- 39.5.3 下载验证
- 39.6 PWR——PVD电源监控实验
- 39.6.1 硬件设计
- 39.6.2 软件设计
- 39.6.3 下载验证
- 第40章 RTC——实时时钟
- 40.1 RTC简介
- 40.2 RTC功能框图解析
- 40.3 RTC初始化结构体讲解
- 40.4 RTC时间结构体讲解
- 40.5 RTC日期结构体讲解
- 40.6 RTC闹钟结构体讲解
- 40.7 RTC—日历实验
- 40.7.1 硬件设计
- 40.7.2 软件设计
- 40.7.3 下载验证
- 40.8 RTC—闹钟实验
- 40.8.1 硬件设计
- 40.8.2 软件设计
- 40.8.3 下载验证
- 第41章 DCMI——OV5640摄像头
- 41.1 摄像头简介
- 41.1.1 数字摄像头与模拟摄像头的区别
- 41.1.2 CCD与CMOS的区别
- 41.2 OV5640摄像头
- 41.2.1 OV5640传感器简介
- 41.2.2 OV5640引脚及功能框图
- 41.2.3 SCCB时序
- 41.2.4 OV5640的寄存器
- 41.2.5 像素数据输出时序
- 41.3 STM32的DCMI接口简介
- 41.3.1 DCMI整体框图
- 41.3.2 DCMI接口内部结构
- 41.3.3 同步方式
- 41.3.4 捕获模式及捕获率
- 41.4 DCMI初始化结构体
- 41.5 DCMI——OV5640摄像头实验
- 41.5.1 硬件设计
- 41.5.2 软件设计
- 41.5.3 下载验证
- 第42章 MDK的编译过程及文件类型全解
- 42.1 编译过程
- 42.1.1 编译过程简介
- 42.1.2 具体工程中的编译过程
- 42.2 程序的组成、存储与运行
- 42.2.1 CODE、RO、RW、ZI Data域及堆栈空间
- 42.2.2 程序的存储与运行
- 42.3 编译工具链
- 42.3.1 设置环境变量
- 42.3.2 armcc、armasm及armlink
- 42.3.3 armar、fromelf及用户指令
- 42.4 MDK工程的文件类型
- 42.4.1 uvprojx、uvoptx、uvguix及ini工程文件
- 42.4.2 源文件
- 42.4.3 Output目录下生成的文件
- 42.4.4 Listing目录下的文件
- 42.4.5 sct分散加载文件的格式与应用
- 42.5 实验:自动分配变量到外部SDRAM空间
- 42.5.1 硬件设计
- 42.5.2 软件设计
- 42.5.3 下载验证
- 42.6 实验:优先使用内部SRAM并把堆区分配到SDRAM空间
- 42.6.1 硬件设计
- 42.6.2 软件设计
- 42.6.3 下载验证
- 第43章 在SRAM中调试代码
- 43.1 在RAM中调试代码
- 43.2 STM32的启动方式
- 43.3 内部Flash的启动过程
- 43.4 实验:在内部SRAM中调试代码
- 43.4.1 硬件设计
- 43.4.2 软件设计
- 43.4.3 下载验证
- 第44章 读写内部Flash
- 44.1 STM32的内部Flash简介
- 44.2 对内部Flash的写入过程
- 44.3 查看工程的空间分布
- 44.4 操作内部Flash的库函数
- 44.5 实验:读写内部Flash
- 44.5.1 硬件设计
- 44.5.2 软件设计
- 44.5.3 下载验证
- 第45章 设置Flash的读写保护及解除
- 45.1 选项字节与读写保护
- 45.1.1 选项字节的内容
- 45.1.2 RDP读保护级别
- 45.1.3 PCROP代码读出保护
- 45.2 修改选项字节的过程
- 45.3 操作选项字节的库函数
- 45.4 实验:设置读写保护及解除
- 45.4.1 硬件设计
- 45.4.2 软件设计
- 45.4.3 下载验证
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。