STM32 的学习方法
前言
学习知识要掌握有效的学习方法,学习技术也是一样,本篇分享关于我学习 STM32 后总结的学习方法。
推荐的学习方法
系统学习
在网上购买一款开发板,使用开发板+开发板配套视频教程+开发板配套源码+芯片官方手册搭配学习。
安富莱、正点原子、野火,这三家公司研发的开发板都挺不错,可自由选择一款作为学习使用。
拒绝做伸手党
要学会如何学习,如何解决问题,拒绝做伸手党。
在学习过程中遇到问题,应先尝试自己查资料或上网搜索进行解决,找资料的过程中看看别人的理解思路。如果在查资料或搜索后并没有找到满意的答复,这时便可以寻求大佬的帮助向大佬提问(文末附有大佬云集的论坛网站链接)。
不经过思考的提问,对自己没有提升。学习技术的过程中,如果你只会做伸手党,那将什么都学不到。
拿到开发板后如何入手
- 先看提供的开发板配套资料的目录,了解配套资料的情况
- 找到核心的学习资料,大致了解开发板硬件资源
- 查看资料,安装开发环境
- 开启学习之旅,先学基础的,基础要多学多问
- 高级的知识,可以慢慢来学
- 学习过程中不懂的,要先查资料,然后提问
需要参考哪些资料
- 最底层(了解):CM3 权威指南 / CM4 权威指南(ARM 提供 )
- 芯片参考手册(芯片功能寄存器描述特性等)(详细了解):STM32F10x 中文参考手册 / STM32F4x 中文参考手册(ST 提供)
- 芯片数据手册(datasheet,ds)(了解):STM32F103xCDE_DS_CH_V5.pdf(芯片电气参数,引脚说明等)
- 官方其它资源和教程(了解):固件库包(含参考源码),一些官方培训 PPT(通过 ST 官网获取)
- 你所购买开发板的学习教程(手册,视频,源码)(理解):针对开发板的源码,教程,视频等,要将源码的涵义吃透(开发板商家提供)
需要掌握哪些基本技能
熟练掌握 C 语言
C 语言是嵌入式开发的基础中的基础,大多数嵌入式项目的开发都是用 C 语言来编写的,如果 C 语言不过关,将会大大限制嵌入式学习的进度,以及嵌入式学习的深度。
熟练掌握一种开发环境与调试工具
在这里强调的是一种开发环境与调试工具,现在市面上供我们选择的开发环境和调试工具有很多,但我们只需熟练掌握一种就好啦,精通一种后其余的在以后也容易上手。
- 掌握一种开发环境:Keil uVision5(MDK-ARM)
- 掌握一个调试工具:JTAG (必备)
MDK-ARM 软件为基于 Cortex-M、Cortex-R4、ARM7、ARM9 处理器设备提供了一个完整的开发环境,MDK-ARM 专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。
市面上关于 STM32 的视频教程中,绝大多数都是使用 MDK-ARM 进行教学的,这里我也推荐大家使用并熟练掌握 MDK-ARM。
我们处在初学阶段时基础不够扎实,对于开发板配套源码或自己编写的代码千万不要走马观花的看,一定要多使用 JTAG 调试代码,深入理解代码执行的流程,做到深入理解代码的涵义。
寄存器、标准库、HAL 库如何选择
标准库和 HAL 库任选其一,或两个一起学习,然后与寄存器对比着学习。
项目中大多数用标准库或 HAL 库,但是作为学习,如果只会看几个函数的话,那么你根本就没有学懂,遇到问题很难自己解决,所以有必要了解一下寄存器的配置原理,加深对底层驱动的理解。
掌握标准库或 HAL 库的基本配置方法,了解寄存器底层配置过程,以便深入理解 STM32 芯片的本质。
深入学习基本外设,选择性学习高级功能
基本外设
单片机主要学习的就是单片机内部的四大基本外设,分别是 GPIO 输入输出、外部中断、定时器和串口通信(串行 I/O 口),理解掌握了这四个外设,基本就入门了一款 MCU。
基本外设接口
这些外设接口功能原理对每个芯片几乎都是一样,对芯片而言就是加减法而已。
SPI,IIC,WDG,FAMC,ADC/DAC,SDIO 等。
高级功能
UCOS,FATFS,EMWIN 等,以及一些应用。
论坛网站推荐
下面推荐几个国内顶尖的 STM 论坛网站,可通过网站获取资源,在学习过程中遇到的问题也可以在上面进行提问,会有大佬在论坛进行解答,当然如果你自己就是大佬,也可以在论坛中为嵌入式小白们解答问题。
后记
因为目前我对 STM32 的学习还不够深入,理解也不够透彻,所以如果文中有表述不清晰或观点不正确的地方,还请大佬批评指点。
STM32 的学习方法的更多相关文章
- STM32固件库模板下载以及固件库学习方法
固件库模板下载 固件库模板新建过程: 下载我们上节的固件库文件 电脑新建一个文件夹命名为Fwlib-Template,在此文件夹下分别新建DOC Libraries Project User 这四个文 ...
- stm32专属于菜鸟的学习方法
1.首先我们先看看与STM32相关的文档 我们假定大家已经对STM32的书籍或者文档有一定的理解.如不理解,请立即阅读STM32的文档,以获取最基本的知识点. 如果你手上拥有ST官方主推的STM32神 ...
- STM32单片机的学习方法(方法大体适用所有开发版入门)
1,一款实用的开发板. 这个是实验的基础,有时候软件仿真通过了,在板上并不一定能跑起来,而且有个开发板在手,什么东西都可以直观的看到,效果不是仿真能比的.但开发板不宜多,多了的话连自己都不知道该学哪个 ...
- STM32学习方法
1.网络学习资源 WWW.openedv.com 开源电子网 WWW.stmcu.org ST中国官方技术网站,ST官方文档发布网站 微信公众平台 正 ...
- stm32开发笔记(二):stm32系列使用V3.5固件库的帮助文件以及GPIO基本功能(一)
前言 stm32系列是最常用的单片机之一,不同的版本对应除了引脚.外设.频率.容量等'不同之外,其开发的方法是一样的. 本章讲解使用库函数使用GPIO引脚功能. 补充 本文章为多年前学习 ...
- ucos实时操作系统学习笔记——操作系统在STM32的移植
使用ucos实时操作系统是在上学的时候,导师科研项目中.那时候就是网上找到操作系统移植教程以及应用教程依葫芦画瓢,功能实现也就罢了,没有很深入的去研究过这个东西.后来工作了,闲来无聊就研究了一下这个只 ...
- [转] STM32各种时钟的区别
[原创]:http://m.oschina.net/blog/129357 我在原创的基础又从另一位博主处引用了一些内容. 时钟系统是处理器的核心,所以在学习STM32所有外设之前,认真学习时钟系统是 ...
- [转载]:STM32为什么必须先配置时钟再配置GPIO
转载来源 :http://blog.csdn.net/fushiqianxun/article/details/7926442 [原创]:我来添两句,就是很多同学(包括我)之前搞低端单片机,到了stm ...
- 【NLP】基于统计学习方法角度谈谈CRF(四)
基于统计学习方法角度谈谈CRF 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...
- STM32 NVIC配置详解
例程: /* Configure one bit for preemption priority */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1) ...
随机推荐
- Codeforces 1682 D Circular Spanning Tree
题意 1-n排列,构成一个圆:1-n每个点有个值0或者1,0代表点的度为偶数,1代表点的度为计数:询问能否构成一棵树,树的连边在圆内不会相交,在圆边上可以相交,可以则输出方案. 提示 1. 首先考虑什 ...
- 微信小程序仿手机相册组件——简单版
仿手机相册的微信小程序组件,具备点击图片预览,长按图片出现多选框功能,读者可以根据自己的需求,依据现有数据进行删除等操作.话不多说,先看效果: 初始效果: 长按效果: 选择效果: 注意:当前只是简单 ...
- C# 8.0 中的 Disposable ref structs(可处置的 ref 结构)
官方文档中的解释: 用 ref 修饰符声明的 struct 可能无法实现任何接口,因此无法实现 IDisposable. 因此,要能够处理 ref struct,它必须有一个可访问的 void D ...
- IPython的使用技巧
?打印IPython简介 在IPython中直接输入?,可以打印出IPython的功能介绍 object ?内省功能 在变量后面加上?,可以打印出该变量的详细信息.例如图中一个列表对象,打印出该对象的 ...
- pod(五):pod hook(pod钩子)和优雅的关闭nginx pod
目录 一.系统环境 二.前言 三.pod hook(pod钩子) 四.如何优雅的关闭nginx pod 一.系统环境 服务器版本 docker软件版本 Kubernetes(k8s)集群版本 CPU架 ...
- perl匹配特殊写法
my $name='4'; #找匹配4 for($name) { if(/^4$/) { print "success\n"; } else { print "faile ...
- oracle问题记录
ORA-01034: ORACLE not available [oracle@ilanni ~]$ sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 – Pro ...
- vmware workstation NAT模式配置
一. 配置虚拟网络编辑器 1. 打开虚拟网络编辑器 2. 点击右下角更改设置 3. 选择NAT模式 点击选中NAT模式的虚拟网络,默认为VMnet8(可调整),可设置NAT模式的子网IP和掩码 4. ...
- vue 3.0 常用API 的介绍
vue3.0 生命周期 写法一 和vue2.x 一致 区别在于(beforeUnmount.unmount)名称不一样 写法二 在setup 中使用, 需要引用 如: import { onBefor ...
- linux系统移植
1 linux环境搭建 1.1 添加交叉开发工具链 新建如下工程目录: gcc-4.6.4.tar.xz #拷贝 tar -Jxvf gcc-4.6.4.tar.xz #解压 cd ./gcc-4.6 ...