基于STM32CubeMX和HAL驱动库的嵌入式系统设计
分享
课程详情
课程评价
spContent=嵌入式系统是电子信息产业的基础,广泛应用于工业控制等领域。本课程选用ST公司的STM32F4微控制器为载体,采用STM32CubeMX开发工具及HAL驱动库,以嵌入式硬件设计和软件设计为主线,按照“最小系统电路设计 → 开发工具使用 → 片内外设应用” 的路径,分层次、递进式的讲授嵌入式系统的设计方法。
—— 课程团队
课程概述

嵌入式系统是电子信息产业的基础,是智能系统的核心,广泛应用于工业控制、汽车电子、智能家居、医疗器械和智能穿戴设备等众多领域。伴随物联网和人工智能的快速发展,嵌入式系统在智能系统中发挥着越来越大的作用。

《嵌入式系统设计》是电子信息类专业的学科基础课程。本课程选用意法半导体公司的STM32F4微控制器为载体,以嵌入式硬件设计和软件设计为主线,结合工程实践,按照最小系统电路设计 → 开发工具使用 → 片内外设应用 ”的路径,分层次、递进式的讲授嵌入式系统的设计方法。

本课程使用了意法半导体公司STM32CubeMX开发工具以及HAL驱动库完成微控制器的设计。STM32CubeMX软件提供简洁的图形化界面,设计者无需编写任何代码,就可以完成引脚分配、时钟设置和外设设置等初始化工作,并生成基于MDK-ARM等集成开发环境的工程框架,使设计者可以更专注于应用层代码的编写。采用库函数的编程方式可以不必了解硬件寄存器的含义,利用库函数提供的接口函数快速实现功能。基于图形化的配置方式和库函数的编程方式使得初学者可以快速入门嵌入式系统的设计和开发,降低了学习的门槛。

本课程与工程实践紧密结合,课程中融入了电路设计软件的使用、硬件抽象层设计、状态机设计和通信协议设计等实用的工程技能,注重培养学生解决复杂工程问题的能力。

本课程的硬件平台选用意法半导体公司的官方开发板Nucleo-F411RE。该开发板采用USB接口供电,集成ST-Link仿真器,板载基本的指示灯和按键,并设计了Arduino UNO的接口,方便用户接入Arduino生态圈的扩展板。NucleoF411RE开发板价格便宜,不足百元,可以很方便地在淘宝等购物平台购买。

本课程分为10个教学单元,一共48个学时,每周发布4个学时,计划12周完成学习,

各教学单元的内容及学时分配如下:

1、嵌入式系统概要                                    4学时

2STM32F4微控制器电路设计               4学时

3STM32微控制器开发环境的搭建          2学时

4STM32CubeMX软件的使用                   2学时

5MDK-ARM开发软件的使用                    4学时

6、通用输入/输出接口                                 8学时

7、外部中断                                                   4学时

8、定时器                                                      8学时

9、串口通信                                                  8学时

10、FreeRTOS          4学时

授课目标

    通过课程的学习,要求学生掌握嵌入式系统的基础知识;熟练掌握 Cortex-M4 内核微控制器的内部结构及片内外设的应用。掌握嵌入式系统的设计及软硬件调试方法。能够设计、调试简单的嵌入式系统,使学生初步具备实际工作的能力。

课程大纲
预备知识

本课程的学习需要C语言程序设计和电子线路设计等预备课程的知识。

参考资料

[1] 漆强.嵌入式系统设计—基于STM32CubeMX与HAL库. 北京: 高等教育出版社,2022.

[2] (英)Joseph Yiu著.宋岩译. ARM Cortex-M3权威指南. 北京: 北京航空航天大学出版社,2009.

[3] 高显生. STM32F0实战—基于HAL库开发[M]. 北京: 机械工业出版社, 2019.

常见问题

[1]   课程配套教材,《嵌入式系统设计—基于STM32CubeMX与HAL库》,高等教育出版社,漆强编著,可在京东、淘宝等平台购买。

[2]   硬件平台:Nucleo-F411RE开发板,可在意法半导体的官方淘宝店购买

[3]   STM32CubeMX软件下载地址:http://www.st.com/stm32cubemx

[4]   MDK-ARM软件下载地址:http://www.keil.com/download/product/

[5]   问题及反馈:课程讨论区