0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32CubeMX和HAL驱动库的嵌入式系统设计浅谈

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 作者:黄工的嵌入式技术 2020-01-09 13:59 次阅读
1.课程详情

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

2.课程概述

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

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

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

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

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

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

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

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

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

4、STM32CubeMX软件的使用:2学时

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

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

7、外部中断:4学时

8、定时器:8学时

9、串口通信:8学时

3.授课目标

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

4.课程大纲

01.嵌入式系统概要

掌握嵌入式系统的概念和组成;了解嵌入式系统的编程模式及程序开发方式;了解硬件抽象层设计思想。

02.STM32微控制器硬件电路设计

了解STM32微控制器的特点;掌握Nucleo开发板的设计原理;熟练应用电路设计软件完成微控制器最小系统设计。

03.STM32微控制器开发环境的搭建

了解STM32Cube生态系统的组成;了解STM32CubeMX软件的开发特点及开发流程;完成STM32开发环境的搭建。

04.STM32CubeMX软件的使用

了解HAL库的基本特点;熟练掌握STM32CubeMX的使用流程;熟练掌握MDK软件的程序编写和程序下载方法。

05.MDK-ARM开发软件的使用

熟练掌握MDK-ARM的使用流程;熟练掌握软件的调试方式;了解MDK-ARM软件的RTE工具。

06.通用输入输出接口

了解GPIO的功能和特点;掌握基于寄存器和基于库函数的程序开发方式;了解库函数的设计思想;掌握硬件抽象层的设计思想和实现方法。

07.外部中断

掌握中断的基本概念和作用;了解HAL库的中断处理流程;熟练运用外部中断进行程序设计。

08.定时器

了解定时器的功能和特点;了解HAL库的外设模块设计方法;熟练掌握定时器的定时功能使用方法;熟练掌握定时器的PWM功能使用方法。

09.串口通信

了解通信的基本概念;了解HAL库的外设初始化设计思想;熟练掌握轮询方式下的串口通信编程方法;熟练掌握中断方式下的串口通信编程方法。

5.预备知识

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

6.参考资料

[1] (英)Joseph Yiu著。宋岩译。 ARM Cortex-M3权威指南。 北京: 北京航空航天大学出版社,2009.[2] 刘火良。 STM32库开发实战指南(第二版)[M]。 北京: 电子工业出版社, 2018.[3] 高显生。 STM32F0实战—基于HAL库开发[M]。 北京: 机械工业出版社, 2019.

7.常见问题

[1]硬件平台:Nucleo-F411RE开发板,可在意法半导体的官方淘宝店购买[2]STM32CubeMX软件下载地址:http://www.st.com/stm32cubemx[3]MDK-ARM软件下载地址:http://www.keil.com/download/product/

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    40

    文章

    3391

    浏览量

    128172
  • 软件
    +关注

    关注

    67

    文章

    4336

    浏览量

    85539
  • 驱动库
    +关注

    关注

    0

    文章

    9

    浏览量

    7133
收藏 人收藏

    评论

    相关推荐

    STM32cubemx和KEIL的有什么不同?

    STM32cubemx软件有对应各个系列芯片的. 使用cubemx,生成代码框架,比如生成MDK的代码框架。但MDK也有自己的PACK。那么MDK的PACK和CUBEMX
    发表于 04-11 06:02

    STM32CubeMX HAL_UART_Receive函数怎么使用?

    STM32CubeMX HAL_UART_Receive函数的使用
    发表于 04-03 08:19

    基于STM32CUBEMX驱动低压步进器电机驱动器STSPIN220(2)----驱动STSPIN220

    本文档的目标是提供关于使用STM32CubeMX驱动低压步进电机驱动器STSPIN220的详尽信息和操作指南。通过本文档,将深入了解如何利用STM32CubeMX来配置电机
    的头像 发表于 12-01 15:25 427次阅读
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驱动</b>低压步进器电机<b class='flag-5'>驱动</b>器STSPIN220(2)----<b class='flag-5'>驱动</b>STSPIN220

    STM8CubeMXSTM32CubeMX功能一样吗?

    STM8CubeMXSTM32CubeMX功能一样吗?
    的头像 发表于 10-31 16:59 1166次阅读
    STM8<b class='flag-5'>CubeMX</b>和<b class='flag-5'>STM32CubeMX</b>功能一样吗?

    STM32F1_HAL使用手册

    版包括:  STM32CubeMX,一个允许生成C初始化的图形软件配置工具使用图形向导编写代码。  一个全面的嵌入式软件平台,按系列提供(如STM32CubeF1STM32F1系列
    发表于 09-28 06:21

    STM32CubeMX介绍及使用方法

    配置STM32代码的工具,它把很多东西封装的比较好,硬件抽象层、中间层、示例代码等。 现在ST公司升级和维护的主要就是STM32CubeMXHAL
    发表于 09-27 08:03

    基于STM32CubeMX开发U盘访问应用

    电子发烧友网站提供《基于STM32CubeMX开发U盘访问应用.pdf》资料免费下载
    发表于 09-25 09:19 2次下载
    基于<b class='flag-5'>STM32CubeMX</b>开发U盘访问应用

    基于STM32U5 的 STM32CubeMX环境搭建

    基于STM32U5 的 STM32CubeMX环境搭建
    的头像 发表于 09-21 17:35 865次阅读
    基于<b class='flag-5'>STM32</b>U5 的 <b class='flag-5'>STM32CubeMX</b>环境搭建

    STM32CubeMX的配置和C代码的生成

    电子发烧友网站提供《STM32CubeMX的配置和C代码的生成.pdf》资料免费下载
    发表于 09-20 09:53 4次下载
    <b class='flag-5'>STM32CubeMX</b>的配置和C代码的生成

    通过STM32CubeMX制作外部Flash的烧写驱动(.stdlr)

    电子发烧友网站提供《通过STM32CubeMX制作外部Flash的烧写驱动(.stdlr).pdf》资料免费下载
    发表于 08-01 11:12 4次下载
    通过<b class='flag-5'>STM32CubeMX</b>制作外部Flash的烧写<b class='flag-5'>驱动</b>(.stdlr)

    STM32CUBEMX开发GD32F303

    在这使用STM32CUBEMX进行配置STM32F103,移植到兆易创新GD32F303,然后进行测试。
    的头像 发表于 07-27 09:32 932次阅读
    <b class='flag-5'>STM32CUBEMX</b>开发GD32F303

    STM32CubeMx入门教程(10):Fatfs文件系统的应用

    导语"fatfs是一个小型的文件系统,在小型的嵌入式系统中使用非常的广泛,STM32CubeMx自带该文件系统,我们通过简单的配置就能够使用
    发表于 07-12 11:39 2500次阅读
    <b class='flag-5'>STM32CubeMx</b>入门教程(10):Fatfs文件<b class='flag-5'>系统</b>的应用

    STM32CubeMx入门教程(3):定时器的使用

    导语“ 使用STM32CubeMx 生成初始化定时器代码,实现定时器特定定时”
    发表于 07-11 15:22 2278次阅读
    <b class='flag-5'>STM32CubeMx</b>入门教程(3):定时器的使用

    STM32CubeMx入门教程(1):点亮LED

    “使用stm32cubeMX 工具进行代码生成,以LED点灯为例”
    发表于 07-11 14:56 2106次阅读
    <b class='flag-5'>STM32CubeMx</b>入门教程(1):点亮LED

    STM32CubeMx外部中断基本使用方法

    第一步:现在STM32CubeMx 中配置所需要IO口外部中断模式。
    发表于 05-31 15:32 2738次阅读
    <b class='flag-5'>STM32CubeMx</b>外部中断基本使用方法