嵌入式系统是电子信息产业的基础,是智能系统的核心,广泛应用于工业控制、汽车电子、智能家居、医疗器械和智能穿戴设备等众多领域。伴随物联网和人工智能的快速发展,嵌入式系统在智能系统中发挥着越来越大的作用。
《嵌入式系统设计》是电子信息类专业的学科基础课程。本课程选用意法半导体公司的STM32F4微控制器为载体,以嵌入式硬件设计和软件设计为主线,结合工程实践,按照“最小系统电路设计 → 开发工具使用 → 片内外设应用 ”的路径,分层次、递进式的讲授嵌入式系统的设计方法。
本课程使用了意法半导体公司STM32CubeMX开发工具以及HAL驱动库完成微控制器的设计。STM32CubeMX软件提供简洁的图形化界面,设计者无需编写任何代码,就可以完成引脚分配、时钟设置和外设设置等初始化工作,并生成基于MDK-ARM等集成开发环境的工程框架,使设计者可以更专注于应用层代码的编写。采用库函数的编程方式可以不必了解硬件寄存器的含义,利用库函数提供的接口函数快速实现功能。基于图形化的配置方式和库函数的编程方式使得初学者可以快速入门嵌入式系统的设计和开发,降低了学习的门槛。
本课程与工程实践紧密结合,课程中融入了电路设计软件的使用、硬件抽象层设计、状态机设计和通信协议设计等实用的工程技能,注重培养学生解决复杂工程问题的能力。
本课程的硬件平台选用意法半导体公司的官方开发板Nucleo-F411RE。该开发板采用USB接口供电,集成ST-Link仿真器,板载基本的指示灯和按键,并设计了Arduino UNO的接口,方便用户接入Arduino生态圈的扩展板。NucleoF411RE开发板价格便宜,不足百元,可以很方便地在淘宝等购物平台购买。
本课程分为10个教学单元,一共48个学时,每周发布4个学时,计划12周完成学习,
各教学单元的内容及学时分配如下:
1、嵌入式系统概要 4学时
2、STM32F4微控制器电路设计 4学时
3、STM32微控制器开发环境的搭建 2学时
4、STM32CubeMX软件的使用 2学时
5、MDK-ARM开发软件的使用 4学时
6、通用输入/输出接口 8学时
7、外部中断 4学时
8、定时器 8学时
9、串口通信 8学时
10、FreeRTOS 4学时
通过课程的学习,要求学生掌握嵌入式系统的基础知识;熟练掌握 Cortex-M4 内核微控制器的内部结构及片内外设的应用。掌握嵌入式系统的设计及软硬件调试方法。能够设计、调试简单的嵌入式系统,使学生初步具备实际工作的能力。
第一章 嵌入式系统概要
第0讲 本章导学
第一讲 嵌入式系统的概念和特点
第二讲 嵌入式系统硬件
第三讲 嵌入式系统软件
第四讲 嵌入式系统编程方式
第五讲 微控制器程序开发方式
本章课件
第一章单元测验
第二章 STM32微控制器的硬件电路设计
第0讲 本章导学
第一讲 STM32微控制器概述
第二讲 STM32 Nucleo开发板简介
第三讲 Nucleo开发板最小系统设计
第四讲 Nucleo开发板外围电路设计
第五讲 Nucleo开发板仿真器电路设计
第六讲 STM32应用电路设计
本章课件
STM32微控制器最小系统及外围电路设计参考
第二章单元测试
第三章 STM32微控制器开发环境的搭建
第0讲 本章导学
第一讲 STM32Cube生态系统介绍
第二讲 STM32CubeMX的下载及安装
第三讲 MDK-ARM软件的下载及安装
第四讲 ST-Link仿真器驱动程序的安装
本章课件
第三章单元测试
第四章 STM32CubeMX软件的使用
第0讲 本章导学
第一讲 HAL库的基本特点
第二讲 STM32CubeMX软件使用步骤
第三讲 在MDK软件中编写应用程序
第四讲 STM32CubeMX使用演示
本章课件
第四章单元测试
第五章 MDK-ARM软件的使用
第0讲 本章导学
第一讲 MDK-ARM软件的使用流程
第二讲 MDK-ARM软件的实用功能
第三讲 RTE环境和CubeMX联合使用
本章课件
第五章单元测试
第六章 通用输入输出接口(一)
第0讲 本章导学
第一讲 GPIO功能概述
第二讲 GPIO模块的电路结构
第三讲 GPIO模块的寄存器介绍
第四讲 基于寄存器方式控制GPIO
本章课件
第六章 单元测试一
第六章 通用输入输出接口(二)
第0讲 本章导学
第一讲 基于HAL库方式控制GPIO
第二讲 任务实践
第三讲 硬件抽象层设计
本章课件
第六章 单元测试二
第七章 中断系统
第0讲 本章导学
第一讲 中断概述
第二讲 HAL库的中断处理流程
第三讲 外部中断的数据类型及接口函数
第四讲 任务实践
本章课件
第七章单元测试
第七章作业
第八章 定时器 (一)
第0讲 本章导学
第一讲 定时器概述
第二讲 HAL库外设模块设计方法
第三讲 定时器的定时/计数功能
第八章单元测试一
第八章作业一
第八章 定时器 (二)
第四讲 定时器的PWM输出功能
第五讲 定时器的输入捕获功能
本章课件
第八章单元测验二
第八章作业二
第九章 串口通信
第0讲 本章导学
第一讲 串口通信概述
第二讲 HAL库外设初始化设计思想
第三讲 轮询方式的串口通信
第四讲 中断方式的串口通信
第五讲 DMA方式的串口通信
本章课件
第九章作业
第九章单元测验
各章作业答案
各章作业答案
期末考试答案
期末考试答案
本课程的学习需要C语言程序设计和电子线路设计等预备课程的知识。
[1] 漆强.嵌入式系统设计—基于STM32CubeMX与HAL库. 北京: 高等教育出版社,2022.
[2] (英)Joseph Yiu著.宋岩译. ARM Cortex-M3权威指南. 北京: 北京航空航天大学出版社,2009.
[3] 高显生. STM32F0实战—基于HAL库开发[M]. 北京: 机械工业出版社, 2019.
[4]王维波,鄢志丹,王钊. STM32Cube高效开发教程. 北京: 人民邮电出版社, 2021.
[1] 课程配套教材,《嵌入式系统设计—基于STM32CubeMX与HAL库》,高等教育出版社,漆强编著,可在京东、淘宝等平台购买。
[2] 硬件平台:Nucleo-F411RE开发板,可在意法半导体的官方淘宝店购买
[3] STM32CubeMX软件下载地址:https://www.st.com/stm32cubemx
[4] MDK-ARM软件下载地址:https://www.keil.com/download/product/
[5] 问题及反馈:课程讨论区