顶部
收藏

嵌入式系统设计——基于STM32CubeMX与HAL库


作者:
漆强
定价:
47.10元
ISBN:
978-7-04-057906-2
版面字数:
490.000千字
开本:
16开
全书页数:
暂无
装帧形式:
平装
重点项目:
暂无
出版时间:
2022-01-28
物料号:
57906-00
读者对象:
高等教育
一级分类:
电气/电子信息/自动化类
二级分类:
电气/自动化专业课
三级分类:
嵌入式系统

本书以产业界主流的微控制器STM32F4为硬件平台,以嵌入式硬件设计和软件设计为主线,按照“最小系统电路设计→开发工具使用→片内外设应用→驱动程序设计→实时操作系统(FreeRTOS)”的路径,分层次、递进式地介绍嵌入式系统的设计方法。

本书选用业界先进的开发工具STM32CubeMX及硬件抽象库(HAL库)进行嵌入式系统开发。STM32CubeMX软件利用图形化界面完成芯片的配置,并配合MDK-ARM等集成开发环境,直接生成应用程序的基本框架,使设计者可以专注于应用层代码的编写。采用库函数的程序开发方式,用户不需对芯片底层的寄存器作过多了解,只需要掌握HAL库提供的接口函数就可以完成应用程序的编写,加快了嵌入式系统的开发效率,降低了学习的门槛。全书共10章,分别是:嵌入式系统概要,STM32微控制器的硬件电路设计,STM32微控制器开发环境的搭建,STM32CubeMX软件的使用,MDK-ARM开发软件的使用,通用输入输出接口,中断系统,定时器,串口通信,FreeRTOS的应用。

本书内容丰富实用,层次清晰,叙述详尽,书中所有例程都是基于意法半导体公司的Nucleo系列开发板,方便教学和自学。本书可作为高等院校电子信息类、自动化类专业的本科生及研究生“嵌入式系统设计”课程的入门教材,以及高职院校和大专院校“嵌入式系统设计”课程的入门教材。

本书对应的慕课课程可在中国大学慕课网上学习,课程名称为“基于STM32CubeMX和HAL驱动库的嵌入式系统设计”。

  • 前辅文
  • 第一章 嵌入式系统概要
    • 1.1 嵌入式系统的概念及特点
    • 1.2 嵌入式系统组成
      • 1.2.1 嵌入式系统硬件
      • 1.2.2 嵌入式系统软件
    • 1.3 嵌入式系统软件开发
      • 1.3.1 编程模式
      • 1.3.2 程序开发方式
    • 本章小结
    • 习题1
  • 第二章 STM32微控制器的硬件电路设计
    • 2.1 STM32微控制器概述
      • 2.1.1 产品分类
      • 2.1.2 STM32F4
    • 2.2 STM32 Nucleo开发板
      • 2.2.1 Nucleo开发板概述
      • 2.2.2 Nucleo-F411RE开发板
      • 2.2.3 STM32F411芯片引脚介绍
    • 2.3 Nucleo-F411RE开发板电路原理
      • 2.3.1 最小系统电路
      • 2.3.2 外围电路
      • 2.3.3 ST-Link仿真器电路
      • 2.3.4 利用板载ST-Link仿真器调试外部MCU
    • 2.4 自制STM32微控制器应用电路
      • 2.4.1 核心板设计
      • 2.4.2 外围电路板设计
    • 本章小结
    • 习题2
  • 第三章 ST32微控制器开发环境的搭建
    • 3.1 STM32Cube生态系统
    • 3.2 STM32CubeMX的下载及安装
      • 3.2.1 STM32CubeMX安装软件的下载
      • 3.2.2 STM32CubeMX的安装
      • 3.2.3 MCU固件包的安装
      • 3.2.4 MCU固件包的组成
    • 3.3 MDK-ARM的下载及安装
      • 3.3.1 MDK-ARM安装软件的下载
      • 3.3.2 MDK-ARM的安装
    • 3.4 ST-Link仿真器驱动安装
    • 3.5 串口调试软件的下载和安装
    • 本章小结
    • 习题3
  • 第四章 STM32CubeMX软件的使用
    • 4.1 STM32CubeMX使用流程
      • 4.1.1 目标选择
      • 4.1.2 引脚分配
      • 4.1.3 外设配置
      • 4.1.4 时钟配置
      • 4.1.5 工程配置
      • 4.1.6 生成工程
    • 4.2 程序编写
      • 4.2.1 工程框架介绍
      • 4.2.2 添加用户代码
      • 4.2.3 程序编译及下载
    • 4.3 串口通信演示程序
    • 本章小结
    • 习题4
  • 第五章 MDK-ARM开发软件的使用
    • 5.1 MDK的使用
      • 5.1.1 新建工程
      • 5.1.2 工程配置
      • 5.1.3 程序编译和下载
      • 5.1.4 程序调试
    • 5.2 MDK软件的实用功能
    • 5.3 MDK的RTE工具与STM32 CubeMX的联合使用
    • 本章小结
    • 习题5
  • 第六章 通用输入输出接口(GPIO)
    • 6.1 GPIO概述
      • 6.1.1 GPIO功能及特性
      • 6.1.2 GPIO的电路结构
      • 6.1.3 GPIO的工作模式
    • 6.2 基于寄存器方式控制GPIO
      • 6.2.1 GPIO相关寄存器
      • 6.2.2 利用指针访问单个寄存器
      • 6.2.3 利用结构体指针访问寄存器组
    • 6.3 基于HAL库方式控制GPIO
      • 6.3.1 GPIO外设的数据类型
      • 6.3.2 GPIO外设的接口函数
      • 6.3.3 GPIO外设的接口函数源码分析
      • 6.3.4 HAL库设计思想
    • 6.4 任务实践
      • 6.4.1 基础任务:驱动指示灯
      • 6.4.2 进阶任务:按键检测
      • 6.4.3 挑战任务:利用状态机检测按键
      • 6.4.4 HAL库程序设计总结
    • 6.5 驱动程序的设计
      • 6.5.1 驱动程序设计思想
      • 6.5.2 指示灯BSP的设计
      • 6.5.3 指示灯BSP的移植和应用
    • 本章小结
    • 习题6
  • 第七章 中断系统
    • 7.1 中断概述
      • 7.1.1 中断相关概念
      • 7.1.2 STM32中断系统
    • 7.2 HAL库的中断处理
      • 7.2.1 HAL库的中断封装
      • 7.2.2 外部中断处理流程
    • 7.3 外部中断的HAL库定义
      • 7.3.1 外部中断的数据类型
      • 7.3.2 外部中断的接口函数
    • 7.4 任务实践
      • 7.4.1 基础任务:中断方式检测按键
      • 7.4.2 进阶任务:按键控制指示灯闪烁间隔
    • 本章小结
    • 习题7
  • 第八章 定时器
    • 8.1 定时器概要
      • 8.1.1 定时器工作原理
      • 8.1.2 STM32定时器介绍
    • 8.2 HAL库外设模块设计方法
      • 8.2.1 外设句柄设计
      • 8.2.2 外设编程模型
      • 8.2.3 外设通用接口函数设计
    • 8.3 定时/计数功能
      • 8.3.1 时钟源
      • 8.3.2 时基单元
      • 8.3.3 外部脉冲计数
      • 8.3.4 定时/计数功能的数据类型
      • 8.3.5 定时/计数功能的接口函数
      • 8.3.6 基础任务:定时闪烁指示灯
      • 8.3.7 进阶任务:外部脉冲计数
    • 8.4 PWM输出功能
      • 8.4.1 捕获/比较通道
      • 8.4.2 PWM实现原理
      • 8.4.3 PWM输出功能的数据类型
      • 8.4.4 PWM输出功能的接口函数
      • 8.4.5 基础任务:输出PWM信号
      • 8.4.6 进阶任务:实现呼吸灯
    • 8.5 输入捕获功能
      • 8.5.1 输入捕获功能概述
      • 8.5.2 输入捕获功能的数据类型
      • 8.5.3 输入捕获功能的接口函数
      • 8.5.4 挑战任务:信号测量
    • 本章小结
    • 习题8
  • 第九章 串口通信
    • 9.1 串口通信概要
      • 9.1.1 计算机通信
      • 9.1.2 串行通信基本概念
      • 9.1.3 STM32串口通信
    • 9.2 HAL库外设初始化过程
      • 9.2.1 串口外设句柄
      • 9.2.2 串口初始化数据类型
      • 9.2.3 串口初始化过程
    • 9.3 轮询方式的串口通信
      • 9.3.1 轮询方式的接口函数
      • 9.3.2 基础任务:固定长度的数据收发
      • 9.3.3 挑战任务:串口重定向
    • 9.4 中断方式的串口通信
      • 9.4.1 中断方式的接口函数
      • 9.4.2 挑战任务:实现简单的通信协议
    • 9.5 DMA方式的串口通信
      • 9.5.1 DMA控制器概述
      • 9.5.2 DMA方式的接口函数
      • 9.5.3 挑战任务:利用空闲中断和DMA实现不定长数据的接收
    • 本章小结
    • 习题9
  • 第十章 FreeRTOS的应用
    • 10.1 概述
      • 10.1.1 软件编程模式
      • 10.1.2 嵌入式操作系统的基本概念
      • 10.1.3 嵌入式实时操作系统
    • 10.2 任务管理
      • 10.2.1 任务划分
      • 10.2.2 任务函数的结构
      • 10.2.3 任务优先级设置
      • 10.2.4 任务管理接口函数
      • 10.2.5 应用实例:任务创建
    • 10.3 任务的同步和通信
      • 10.3.1 信号量
      • 10.3.2 事件标志组
      • 10.3.3 线程标志(任务通知)
      • 10.3.4 互斥量
      • 10.3.5 消息队列
      • 10.3.6 软件定时器
    • 10.4 综合应用:设计电子时钟
    • 本章小结
    • 习题10
  • 参考文献

相关图书