课程 | 基于STM32CubeMX和HAL驱动库的嵌入式系统设计
帮成都这边一位老师友情分享一篇免费课程:基于STM32CubeMX和HAL驱动库的嵌入式系统设计。
如果想学习本课程,可以从文末给出的链接,或底部“阅读原文”进入报名,免费学习。
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/
免费课程学习地址:
http://www.icourse163.org/course/UESTC-1207429802?from=groupmessage
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
推荐阅读:
精选汇总 | 目录 | 搜索
2019,关于我的故事
Ubuntu过去十年的10个关键时刻
关注微信公众号『strongerHuang』,后台回复“1024”,查看更多精彩内容。
长按识别图中二维码关注
点击下面“阅读原文”免费报名学习。
课程 | 基于STM32CubeMX和HAL驱动库的嵌入式系统设计相关推荐
- 【基于 STM32CubeMX + PWM + DMA驱动SW2812b全彩RGB灯】
基于 STM32CubeMX + PWM + DMA驱动SW2812b全彩RGB灯 STM32CubeMX配置: 工程源码: END 以上就是相关配置,最需要注意的就是时钟以及pre数值以及芯片时钟频 ...
- Arduino UNO基于Timer2的舵机驱动库(精度比官方的高)
Arduino UNO基于Timer2的舵机驱动库(精度比官方的高) 原博客格式更友好:More accurate Arduino UNO timer2 servo driver library th ...
- HAL驱动库学习-ADC
如何使用ADC驱动库 1 实现如下两个函数 a: HAL_ADC_MspInit()使能ADC时钟,设置时钟源, 使能ADC Pin,设置为输入模式,可选 DMA,中断 b:HAL_ADC_MspD ...
- 电磁循迹智能车基于stm32cubeMX、HAL库—我的第一辆智能车
我的第一辆智能车-电磁循迹智能车 提示:本文适用于初学,想完成一个基础四轮车练练手者,大佬还请勿喷,不过欢迎提出意见,有纰漏之处我将及时纠正. 注:工程代码链接已贴在文末. 前言: 所用到的硬件平台: ...
- 基于Arm-Linux和TCP/IP的远程控制嵌入式系统设计
一 概要设计 1.1系统功能说明 基于博创up-techs3c2410实验箱的硬件平台,设计基于TCP/IP协议的arm-linux嵌入式系统服务器端.在局域网内的PC客户端(或另一台基于博创up-t ...
- stm32cubeMX使用HAL库点亮LED流水灯
系列文章目录 文章目录 系列文章目录 一.实验工具 二.STM32CubeMX生成代码使用HAL库点亮流水灯 1.安装STM32CubeMX 2.安装HAL库 3.新建项目 4.keil仿真调试 三. ...
- 嵌入式计算机课程设计,嵌入式系统设计课设报告.doc
嵌入式系统设计课设报告.doc 福州大学嵌入式系统设计课设报告书题 目 基于28027的虚拟系统 姓 名 学 号 学 院 电气工程与自动化学院 专 业 电气工程与自动化 年 级 起讫日期 指导教师 目 ...
- 嵌入式系统设计(五):详细介绍win8/win10下安装 PL2303 驱动以及android_ADB驱动
前言: 在接下来的时间里将更新一个专栏:嵌入式系统设计.在这个专栏里将会介绍基于iTOP-4412 Cortex A9开发板的嵌入式系统设计,从入门到实践可以无障碍的学习.欢迎大家关注收藏学习!!!! ...
- STM32CubeMX | 基于STM32使用HAL库硬件SPI驱动WK2124一拖四SPI转四路串口芯片
STM32CubeMX | 基于STM32使用HAL库硬件SPI驱动WK2124一拖四SPI转四路串口芯片 STM32基础工程生成 首先使用STM32CUBEMX生成STM32的基础工程,配置时钟到7 ...
最新文章
- Python Numpy多维数组.sum(axis=0/1/2...) 详解
- ffmpeg录制屏幕并推流ffmpeg+nginx-http-flv-module+flv.js
- C++流操纵算子(格式控制)
- what should you do if you can be silent and do things
- vector怎么按字段查询顺序输出_7大查询匹配类函数,一次给你总结好
- 开源作者在行动:疫情防控相关开源项目推荐
- mysql sql文件在哪里打开_mysql怎么打开sql文件
- 密度聚类( DBSCAN )
- win7录屏_win7/win10屏幕录制教程?
- 一款全国产USB3.0网卡方案介绍
- 计算机网络(5.13)运输层- TCP的拥塞控制方法
- git拉取代码报错update_ref failed for ref ‘ORIG_HEAD‘:cannot lock ref ‘ORIG_HEAD‘
- 解决树莓派4B从USB启动的问题
- Python二进制内容转为中文(二进制转中文)
- 写学习心得,赢华为P30、漫步者音响!
- 电子传真虚拟化的优势
- 018基于JSP网上图书商城系统
- 普罗米修斯-docker安装
- (转)龙讯网无预警破产 数百员工集体讨薪(组图)
- css3实现三级树形,css3树形导航
热门文章
- Yii setFlash getFlash用法
- JQuery Smart UI 简介(六) — 框架设计【后篇】(数据接口、后台框架)[简介系列完结]...
- 计算机网络之实验四---WEB 服务器配置与 HTTP 分析
- 计算机语言与硬件相关,搞懂程序语言与计算机硬件的关系
- ASP.NET MVC3 AjaxPro2_se7en3_新浪博客
- 2021 icpc 沈阳 J-Luggage Lock
- 静态/动态博客Blog框架简介
- 安全大讲堂 | 陈屹力:未来云原生安全能力建设将强调体系化的安全防护
- 如何更好的建设标准化数字化智慧工地?
- Android 输入法汇总