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/

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

    关注

    41

    文章

    3716

    浏览量

    133099
  • 软件
    +关注

    关注

    69

    文章

    5297

    浏览量

    90869
  • 驱动库
    +关注

    关注

    0

    文章

    10

    浏览量

    7332
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    分享一个嵌入式开发学习路线

    技术,实现设备联网上传数据。 系统架构思维:理解企业级嵌入式开发的架构设计,如分层架构、模块化设计等。 实践建议:在STM32上移植FreeRTOS,实现多任务管理;用WiFi模块实现温湿度数据上传云端
    发表于 12-04 11:01

    嵌入式从入门到进阶,怎么学?

    原理图。 数据结构优先学 数组、链表、队列(嵌入式底层算法核心),暂跳过复杂结构(如红黑树)。 计算机原理了解 CPU 架构、总线系统、存储机制(把嵌入式系统当 “缩小版计算机” 理解
    发表于 09-02 09:44

    意法半导体:STM32CubeMX将不再集成到STM32CubeIDE中

    从2025年11月发布的版本开始,我们将仅以 独立 版本的形式提供 STM32CubeIDE 和 STM32CubeMXSTM32CubeMX将不再集成到STM32CubeIDE
    的头像 发表于 09-01 17:18 2630次阅读

    嵌入式开发入门指南:从零开始学习嵌入式

    基础 3. 学习路径推荐第一阶段:熟悉开发环境(如Keil、IAR、STM32)第二阶段:掌握裸机编程与驱动开发第三阶段:学习RTOS(实时操作系统)如FreeRTOS第四阶段:深入理解Linux
    发表于 05-15 09:29

    STM32开发入门进阶必备!《STM32嵌入式系统开发—基于STM32CubeMXHAL》新书发布!

    近日,由华清远见教育科技集团精心编撰的教育部高等学校电子信息类专业教学指导委员会规划教材、普通高等教育电子信息类专业系列教材——《STM32嵌入式系统开发—基于STM32CubeMX
    的头像 发表于 04-03 14:54 1364次阅读
    <b class='flag-5'>STM32</b>开发入门进阶必备!《<b class='flag-5'>STM32</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>开发—基于<b class='flag-5'>STM32CubeMX</b>和<b class='flag-5'>HAL</b><b class='flag-5'>库</b>》新书发布!

    Python在嵌入式系统中的应用场景

    你想把你的职业生涯提升到一个新的水平?Python在嵌入式系统中正在成为一股不可缺少的新力量。尽管传统上嵌入式开发更多地依赖于C和C++语言,Python的优势在于其简洁的语法、丰富的
    的头像 发表于 03-19 14:10 1188次阅读

    请问STM32cubeMX中文版怎么设置?

    STM32cubeMX中文版怎么设置?
    发表于 03-13 06:12

    myST账号无法注册导致stm32cubemx无法下载hal的固件包,为什么?

    myST账号无法注册导致stm32cubemx无法下载hal的固件包,myST账号注册卡在最后的邮箱验证环节,一直卡着无法注册通过 很急很急!以前stm32cubemx都不需要登录
    发表于 03-11 06:17

    STM32CubeMX生成STM32mp135D的USART1,2,3,6代码初始化是空的,为什么?

    STM32CubeMX生成STM32mp135D的USART1,2,3,6代码初始化是空的,参考其他代码做了初始化操作,可以通过HAL_USART_Transmit接口发送数据,但是调用
    发表于 03-07 07:48

    STM32CubeMX用于STM32配置和初始化C代码生成

    电子发烧友网站提供《STM32CubeMX用于STM32配置和初始化C代码生成.pdf》资料免费下载
    发表于 02-26 17:32 678次下载

    工程师开发利器:STM32CubeMX 与 eDesignSuite 的协同开发

    (如定时器、PWM)无缝对接。三、STM32CubeMX 与 eDesignSuite 的协同开发两者的结合可为复杂嵌入式系统(如智能家电、工业控制)提供 端到端解决方案:电源与硬件协同
    的头像 发表于 02-26 14:07 1114次阅读
    工程师开发利器:<b class='flag-5'>STM32CubeMX</b> 与 eDesignSuite 的协同开发

    盘点工程师常用的嵌入式开发工具

    嵌入式开发涉及硬件与软件的紧密结合,开发工具的选择对效率和质量至关重要。以下是嵌入式开发中常用的工具分类及代表性工具,涵盖开发全流程: 1. 集成开发环境(IDE) Keil MDK 针对ARM
    的头像 发表于 02-07 10:06 3736次阅读

    清华大学出版社推出RT-Thread新作,助力嵌入式开发人才培养

    RT-Thread第16本权威著作,助力嵌入式开发人才培养近日,清华大学出版社出版了由杨卫波、庄友谊、阮秀凯老师编写的最新教材——《嵌入式系统原理与应用:基于STM32F1HAL
    的头像 发表于 01-16 19:07 910次阅读
    清华大学出版社推出RT-Thread新作,助力<b class='flag-5'>嵌入式</b>开发人才培养

    STM32CubeMX生成的代码,是怎样的HAL架构?

    需要注意,CubeMX只是一个初始化工具,它只是帮你完成了HAL外设和时钟的初始化,具体程序的编写还需要查阅HAL的说明,使用相关函数实
    的头像 发表于 01-01 21:01 1233次阅读
    <b class='flag-5'>STM32CubeMX</b>生成的代码,是怎样的<b class='flag-5'>HAL</b>架构?

    STM32CubeMX的菜单介绍

    相信初学者打开STM32CubeMX一定是一脸懵逼,里面都是全英文的,不知道从何入手。这里先给大家简单讲解一下。在新建工程这一栏里,我们最常用的是第一个,它会弹出一个芯片列表供你选择,然后就会创建一
    的头像 发表于 12-25 21:03 692次阅读
    <b class='flag-5'>STM32CubeMX</b>的菜单介绍