新書推薦:
《
史铁生:听风八百遍,才知是人间(2)
》
售價:HK$
55.8
《
量子网络的构建与应用
》
售價:HK$
109.8
《
拍电影的热知识:126部影片里的创作技巧(全彩插图版)
》
售價:HK$
109.8
《
大唐名城:长安风华冠天下
》
售價:HK$
87.4
《
情绪传染(当代西方社会心理学名著译丛)
》
售價:HK$
88.5
《
中国年画 1950-1990 THE NEW CHINA: NEW YEAR PICTURE 英文版
》
售價:HK$
236.0
《
革命与反革命:社会文化视野下的民国政治(近世中国丛书)
》
售價:HK$
93.2
《
画楼:《北洋画报》忆旧(年轮丛书)
》
售價:HK$
337.5
|
內容簡介: |
本书介绍了意法半导体(STMicroelectronics,ST)公司的32位基于ARM CM3内核的STM32单片机原理与实践。本书以培养学生的动手能力和增强学生的工程素养为目的,按照项目驱动的思路展开教学与实践学习,以Nucleo开发板上的程序为实例,将STM32单片机的外围引脚特性、内部结构与原理、片上外设资源、开发设计方法和应用软件编程、FreeRTOS操作系统原理及应用等知识呈现给读者。
|
關於作者: |
陈志旺博士,燕山大学副教授、硕导,主要从事预测控制、智能控制、嵌入式系统研发等方向的教学与科研工作,大学生创新性实验计划”嵌入式电动四旋翼飞行器的设计及实现””嵌入式四旋翼飞行器自主飞行的设计及实现”指导教师,指导学生完成的”新型自适应四旋翼飞行器”获第12届”挑战杯\全国大学生课外学术科技作品竞赛奖。
|
目錄:
|
第1章 嵌入式系统概述 1.1 计算思维 1.2 嵌入式系统简介 1.2.1 嵌入式系统的定义 1.2.2 嵌入式系统的特点 1.2.3 嵌入式系统的分类 1.2.4 嵌入式系统的发展 1.3 ARM体系结构及微处理器系列 1.3.1 ARM公司简介 1.3.2 ARM体系结构简介 1.4 STM32系列微控制器简介 1.4.1 STM32芯片 1.4.2 ST的生态系统 第2章 CM3体系结构 2.1 CM3内核结构 2.2 CM3处理器的工作模式及状态 2.3 CM3寄存器 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 存储器保护单元 2.10 STM32微控制器概述 2.11 Nucleo-F103RB开发板 第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 解析SystemClock_Config()函数 3.2.6 RCC寄存器 3.2.7 STM32时钟常见问题 3.3 复位电路 3.4 STM32启动 3.5 程序下载电路 3.6 STM32最小系统 第4章 STM32程序设计 4.1 嵌入式软件层次结构 4.2 Cortex微控制器软件接口标准 4.3 HAL库 4.3.1 HAL库简介 4.3.2 STM32CubeF1软件包主要文件夹 4.3.3 STM32CubeF1软件包主要文件简介 4.3.4 HAL库函数 4.4 编译过程及MDK 4.4.1 编译过程 4.4.2 程序的组成、存储与运行 4.4.3 CM3指令集案例 第5章 GPIO的原理及应用 5.1 计算机接口概述 5.2 GPIO的硬件结构和功能 5.2.1 GPIO的硬件结构 5.2.2 复用功能 5.2.3 GPIO输入功能 5.2.4 GPIO输出功能 5.2.5 GPIO速度选择 5.2.6 钳位功能 5.3 GPIO寄存器映射 5.3.1 GPIO寄存器 5.3.2 用C语言对寄存器进行封装 5.4 GPIO的HAL库函数 5.5 HAL库函数与寄存器的关系 5.5.1 解析HAL_Init()函数 5.5.2 解析MX_GPIO_Init()函数 5.5.3 解析HAL_GPIO_Init()函数 5.5.4 解析__HAL_RCC_GPIOA_CLK_ENABLE()函数 5.6 GPIO应用实例 5.6.1 STM32CubeMX配置步骤 5.6.2 新建例程1:直接数字地址 5.6.3 新建例程2:ODR寄存器法 5.6.4 新建例程3:Bit-band控制法 5.6.5 新建例程4:位设置/清除寄存器法 5.6.6 新建例程5:TogglePin库函数法 第6章 EXTI的原理及应用 6.1 中断和子程序 6.2 STM32中断通道 6.3 STM32中断的过程 6.4 NVIC硬件结构及软件配置 6.4.1 NVIC硬件结构 6.4.2 STM32中断优先级 6.4.3 中断向量表 6.4.4 NVIC寄存器和系统控制寄存器 6.4.5 NVIC库结构 6.5 EXTI硬件结构及软件配置 6.5.1 EXTI硬件结构 6.5.2 中断及事件 6.5.3 EXTI中断通道和中断源 6.5.4 EXTI寄存器 6.5.5 EXTI库函数 6.6 EXTI应用实例 6.6.1 按键中断 6.6.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初始化HAL库函数 7.9 STM32串口新功能 7.10 USART应用实例 7.10.1 直接传送方式 7.10.2 中断传送方式 7.10.3 串口Echo回应程序 7.10.4 利用printf()的串口编程 第8章 定时器的原理及应用 8.1 STM32定时器概述 8.2 STM32定时器功能模块 8.3 通用定时器TIMx的功能 8.4 通用定时器TIMx的结构 8.4.1 时钟源选择 8.4.2 时基单元 8.4.3 捕获和比较通道 8.4.4 计数器模式 8.4.5 定时时间的计算 8.4.6 定时器中断 8.5 通用定时器TIMx的寄存器 8.6 TIMx初始化HAL库函数 8.7 TIM2应用实例 8.7.1 秒表 8.7.2 输出比较实例1 8.7.3 输出比较实例2 8.7.4 PWM输出 8.7.5 PWM输入捕获 8.8 系统时钟SysTick简介 8.9 SysTick寄存器 8.9.1 SYSTICKCSR 8.9.2 SYSTICKRVR 8.9.3 SYSTICKCVR 8.9.4 SYSTICKCALVR 8.10 SysTick库函数源代码 8.11 SysTick应用实例 第9章 DMA的原理及应用 9.1 DMA简介 9.2 DMA的功能及结构 9.2.1 DMA的功能 9.2.2 DMA的结构 9.3 DMA相关寄存器 9.4 DMA初始化HAL库函数 9.5 DMA应用实例 第10章 ADC的原理及应用 10.1 ADC的功能和结构 10.1.1 ADC的基本概念 10.1.2 ADC的功能 10.1.3 ADC的结构 10.2 ADC的工作模式 10.3 数据对齐 10.4 ADC中断 10.5 ADC相关寄存器 10.6 ADC初始化HAL库函数 10.7 ADC应用实例 第11章 实时操作系统基础 11.1 操作系统 11.1.1 操作系统的层次 11.1.2 操作系统的功能 11.1.3 操作系统的服务 11.2 进程和线程 11.2.1 任务 11.2.2 进程 11.2.3 线程 11.3 实时操作系统 11.3.1 可剥夺型操作系统和不可剥夺型操作系统 11.3.2 实时操作系统的定义 11.3.3 实时操作系统的特点 11.3.4 实时操作系统的几个评价指标 11.3.5 通用操作系统与实时操作系统的比较 11.4 嵌入式开发软件框架 11.4.1 前后台执行结构 11.4.2 时间片轮询结构 11.4.3 操作系统结构 第12章 FreeRTOS任务应用实例 12.1 CMSIS-RTOS中的FreeRTOS操作系统 12.2 任务简介 12.2.1 任务函数 12.2.2 任务的状态 12.2.3 任务控制块 12.2.4 任务优先级 12.2.5 时钟节拍 12.2.6 空闲任务的任务函数 12.3 任务管理 12.3.1 创建任务 12.3.2 删除任务 12.3.3 任务挂起和恢复函数 12.4 任务调度 12.4.1 任务调度简介 12.4.2 FreeRTOS调度算法分类 12.4.3 FreeRTOS抢占式调度 12.4.4 抢占式调度案例说明 12.5 时间管理 12.5.1 相对延时 12.5.2 绝对延时 12.6 互斥信号量 12.7 利用队列的任务间通信 12.8 任务调度实例 12.8.1 程序功能 12.8.2 Cube主要设置 12.8.3 程序源代码分析 第13章 LED和按键综合设计实例 13.1 嵌入式系统产品开发简介 13.1.1 产品设计流程 13.1.2 优秀的产品设计及工程师的要求 13.1.3 嵌入式系统设计流程 13.2 LED驱动综合实例 13.2.1 利用C语言实现面向对象程序设计 13.2.2 LED多状态实例功能 13.2.3 功能分析 13.2.4 案例代码 13.2.5 代码分析 13.3 键盘驱动综合实例 13.3.1 按键多状态实例功能 13.3.2 实例代码 13.3.3 代码分析 13.3.4 代码改进 附录A 嵌入式系统常用缩写和关于端口读/写的缩写表示 附录B CM3指令清单 附录C Nucleo -F103RB开发板原理图 参考文献
|
|