嵌入式系统原理及应用
嵌入式系统原理及应用
少于1000 人选课
更新日期:2026/04/04
开课平台学银在线
开课高校燕山大学
开课教师陈志旺李峰磊卫燕侨
学科专业工学电气类
开课时间2026/03/01 - 2026/06/30
课程周期18 周
开课状态开课中
每周学时-
课程简介

这门课会讲什么?

本课程中以计算思维为导向,帮助学习者“把STM32作为一个工具”来学习计算机学科的基础知识,充实实践内容。本课程的所有内容都是围绕着“以STM32单片机为例来讲解微机原理”和“培养底层编程意识和思想”这两个核心目标来进行的。对所有和这两个目标关系并不密切的内容,都进行了舍弃,使学习者可以集中注意力于那些具有普遍意义的计算机知识。

有了目标,如何导航?导航需要地图和指南针。

地图使学习者对嵌入式微机的知识体系有宏观把握,居高临下,不会“不识庐山真面目,只缘身在此山中”。STM32单片机的资源太丰富,工具很完善,这是它占领嵌入式市场的优势,但却使得初学者不知从何入手。尽管ST公司写了厚厚的芯片手册,但却不适合初学者。如果把手册看成一幅真实的地图,初学者需要的是一幅“手绘地图”。大学课堂上的教学和教材应是这样的“手绘地图”,不必所有细节事无巨细(STM32的所有外设不一定都介绍),但应给出学习的导航路径,提示重点关注的地方,用易于理解的卡通方式进行解释;比例尺(详略)要根据学生的能力及应用选择;知识体系还要全面完整。学完手绘地图,有了初步基础,更重要的是对单片机的认识有了全貌,这样再去看手册,就形成了“良好的学习梯度”,便于初学者拾级而上。

这里的地图也指STM32的整体结构,学习每部分内容要清晰各部分在整体结构中的位置,和其他部分的关系。

指南针指示方向,使学习者洞察重点,突破难点,注重典型性,避免随意性;注重迁移性,避免孤立性。

有了教学目标和顶层设计,本课程特点如下:

(1)定位准确,为STM32入门开发者而写,做到有的放矢;

(2)内容先进,对STM32最新发布的产品有关注,能反映计算机科学技术的新成果,新趋势;内容有坚实的学术研究基础,同时还是教与学切磋相长的荟萃;

(3)取舍合理,做到“该有的有,不该有的没有”,不包罗万象、贪多求全,不直接复制照抄手册;课程内容的基础性与先进性、经典与现代、理论与实践的关系处理得当;课程制作中综合参考了多方面相关资料:STM32官方培训、STM32配套开发板、嵌入式开发工程师公众号及博客,集多家之长,取长补短,更好满足STM32入门者的学习需求。针对上述资料我们并没有“拿来主义”直接使用,教研团队对资料及学生需求进行了充分的对比分析,有针对性地进行了深度二次开发,使课程内容更适合STM32学习者的特点。

(4)体系得当,针对STM32入门者的特点,精心设计教材体系,符合科学发展的规律和教育的认知规律,在理论与实践、基础与新知、知识与技能等方面有恰当合理的布局和设计,同时要注意学科交叉和文理交融;不仅使教材体现科学性和先进性,还要注意循序渐进、降低台阶、分散难点,使学生易于理解;

(5)风格鲜明,要用通俗易懂的方法和语言叙述复杂的概念,善于运用形象思维,深入浅出,引人入胜。

该课程配套教材《STM32嵌入式微控制器快速上手(第2版)》曾荣获2014年中国电子教育学会“全国电子信息类优秀教材”三等奖。据统计,该教材被山东大学、电子科技大学、苏州大学、河北工业大学、东华大学等国内50余所高校选用,截止2021年7月累计重印30次,30100册。

你将收获什么?

本课程各章节在讲述具体内容时,以我们开发的STM32开发板为硬件教具,每章均会提供一个设计任务实例,以任务为驱动,通过“学中做、做中学”,即DIY(Do It Yourself)和LBD(Learning By Doing)的方式,介绍和讲解所需要用到的新知识、新技能,按照认识论的规律学习和掌握基于ARM Cortex-M3内核的STM32嵌入式微控制器技术及其应用编程,尽量避免纯理论性描述带给读者的枯燥感。有别于数据手册式的讲解,本课程并没有面面俱到地谈及Cortex-M3的技术细节,各个章节也没有繁冗的寄存器说明(参见ST公司网页上的数据手册或本书配套资料),每章例子程序只给出关键代码,完整程序详见教材网盘,这样做的目的旨在突出重点。课程也注意了软硬件的结合,将STM32的内部结构、控制寄存器和库函数对应结构体,还有功能特点和初始化设置等结合起来,揭示软硬件之间的联系,使读者能够对STM32应用“快速上手”。课程不仅仅是教给大家STM32基础知识,更重要的是嵌入式系统的学习方法,启发读者的创意思维,如果一门课只是教会读者课程中的东西,而读者只会用课程中的东西,那是剥夺读者自身创造力的行为,本课程却是力图启发、诱导读者的创造力,授读者以“渔”而非“鱼”,这才是本课程最独特之处。学习具体建议如下:

(1)重视实践。工程师是为了解决问题,这种解决问题能力只有从实践中才能获得。同时,单纯的实践也无法获得真正的能力,关键是如何从实践的经验和体会中,归纳出共性的知识,建立起知识体系,然后再将这些知识重新应用到新的实践中去。这也是当今的大学生要在未来的实际工作(无论是在企业研发还是在高校做研究)中必须采取的学习和工作方法。做到了这一点,才是真正实践了工作导向的哲学理念:实践、归纳、总结和再实践。学好嵌入式系统,实践必不可少,一定要选一块和微处理器型号对应的开发板,创建一个良好的平台和环境,边实践边学习,并尽量弄清内在原理。硬件开发板的价格不要太贵,最好能有自己动手的空间。深入理解STM32的硬件最小系统,对I/O口、串行通信、键盘、LED、LCD、SPI、I2C、PWM、A/D(包括一些传感器)、D/A等逐个实验理解,逐步实践,再通过动手做一个实际的小系统,底层硬件基础就有了。各个硬件模块驱动程序的编写是嵌入式系统的必备基础。大家在编程中主要针对main.c和stm32f10x_it.c两个文件,但是其它定义硬件控制寄存器的文件stm32f10x_map.h、硬件初始化结构体的文件stm32f10x_xxx.h和stm32f10x_xxx.c也要仔细研读,因为它们会加深硬件理解,将软件和硬件联系起来,学习嵌入式系统的初期,这个过程是必须的。把书上的程序例子亲手输入到电脑上实践,一定要多上机操作。程序是抽象的,有时看程序看的懂,但自己去编却不一定能编的出来;而有时候虽然程序没看懂,但如果经常着手去编,就会非常熟悉该程序用的时候应该怎么去处理,时间久了自然就理解了;请把在书中看到的有意义的例子扩充,举一反三;经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去,温故而知新,不要觉得自己什么都会了,要保持谦虚的态度;当你写程序写到一半却发现自己用的方法繁琐时,请不要马上停手,请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写;当你遇到问题的时候,请不要马上就像其他的人求教,这样会让你养成依赖性,学会自己去解决问题。独立编程,看到一个编程要求之后,首先要在脑中有一个大体的轮廓,独立构思,不要看参考揭示,只有这样才可以达到真正的训练目的,才可以一步步地把思路培养出来;保存好你写过的所有的程序——那是你最好的积累之一;学习的过程中要经过思考加工去粗取精,抓本质和精华,仔细研读并尝试修改别人的例子代码,真正将新知识在实践中理解后嵌入到自己的知识体系中,转化成自己的能力。本书每个知识点后都对应一个开发板实例,推荐以项目开发的方式进行学习,将学习成果变成自己的作品。

 (2)重视官方文档。学习的时候,关注两个比较重要的文档:《STM32F103xxx 参考手册》和《STM32固件库使用手册》。

阅读《STM32F103xxx参考手册》,一定要注意,不需要全部阅读,但是前几章必须重点读。存储器和总线架构、电源控制、备份寄存器、复位和时钟控制,通用和复用功能I/O,中断和定时器等等前几章一定要花时间阅读。后面章节,讲述的是具体的功能模块设计。如果用到哪个模块,就可以去阅读哪个模块。

阅读《STM32 固件库使用手册》,主要是为了简化编程。STM32给我们提供了一个非常好的固件函数库,我们只要去调用即可。阅读《STM32 固件库使用手册》的时候,前面几章也是必须阅读的。比如第1章文档和库规范中的命名规则,编码规则,这些都是需要注意的。第2章是最关键的,希望大家熟读。第2章描述了固件库的架构,我们如何去使用固件库的步骤等。有了第2章的基础,我们就可以借助固件库写出自己的代码了。第4章开始之后,都是描述某个模块有什么函数,每个函数如何使用等,可以根据需要来阅读,建议对GPIO 库函数、中断部分库函数、复位和时钟设置的库函数要比较熟悉,因为平时经常会用到。

无论什么时候,官方手册是最好的老师和帮手,千万不要因为它的枯燥乏味而将其束之高阁。使用任何外设前,都必须仔细看参考手册和使用手册。

    (3)重视交流。此处的交流是广义的交流,借鉴别人也是交流。看一些好书,书本通常不会给你带来什么新意,但是巩固和沉淀知识很重要;在网上有个交流平台,或者开博,或者社区交流,把自己解决的问题和经验与他人分享,这样通常会让你个人的研究更具可行性和更深入地被了解;构建或参与技术圈子,一个好的圈子通常会给你带来钻研和共同提高的激情,或者说是一个好的良性竞争环境。


适合什么人学习?

本课程可作为高等本科院校和职业技术学院的计算机、电子信息、自动化、电力电气、电子技术及机电一体化等相关专业的“嵌入式系统原理与应用”、“基于ARM Cortex内核的单片机系统开发”等课程的线上视频课程配套使用,也可以作为工程实训、电子制作与竞赛的参考课程,同时还可以供广大从事自动控制、智能仪器仪表、电力电子、机电一体化等系统开发和设计的工程技术人员、教师或者个人参考自学使用,并可作为ARM相关应用与培训课程。

课程大纲

课程章节

  • 嵌入式系统概述
  • Cortex-M3体系结构
  • STM32最小系统
  • STM32程序设计
  • GPIO原理及应用
  • EXTI原理及应用
  • USART原理及应用
  • 定时器原理及应用
  • DMA原理及应用
  • ADC原理及应用
  • μC/OS-II嵌入式操作系统基础
  • μC/OS-II的内核机制

嵌入式系统概述

1.1 微机系统基本概念

1.2 嵌入式系统特点及发展

1.3 ARM及STM32简介

Cortex-M3体系结构

2.1 CM3微处理器结构

2.2 总线和存储器

2.3 bit-band操作

STM32最小系统

3.1 电源电路及功耗管理

3.2 复位方式及启动流程

3.3 时钟、下载电路及最小系统

STM32程序设计

4.1 CMSIS及标准外设库

4.2 STM32嵌入式底层编程

4.3 MDK编译过程及变量存储实验

GPIO原理及应用

5.1 GPIO硬件结构和功能

5.2 库函数和寄存器的关系

5.3 GPIO应用案例(一)

5.4 GPIO应用案例(二)

5.5 STM32Cube应用

EXTI原理及应用

6.1 中断概念和NVIC

6.2 EXTI

USART原理及应用

7.1 USART

定时器原理及应用

8.1 TIM

8.2 STM32定时器的PWM

DMA原理及应用

9.1 DMA

ADC原理及应用

10.1 ADC

μC/OS-II嵌入式操作系统基础

11.1 RTOS基础

μC/OS-II的内核机制

12.1 μC/OS- -II中的任务

App 下载
关注我们