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) ...
随机推荐
- MySQL 全局锁、表级锁、行级锁,你搞清楚了吗?
大家好,我是小林. 最近重新补充了<MySQL 有哪些锁>文章内容: 增加记录锁.间隙锁.net-key 锁 增加插入意向锁 增加自增锁为 innodb_autoinc_lock_mode ...
- 《HelloGitHub》第 79 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...
- 如何通过free看懂内存的真实使用
之前有位同事问过Linux系统内存free命令下各参数的区别与关系,自己也没太明白,有点尴尬.今天整理一下,供了解. free命令是Liunx操作系统中对内存进行查看和监控的一个常用命令.我们可以直接 ...
- java反序列化cc_link_one2
CC-LINK-one_second 前言 这条链子其实是上一条链子的另一种走法,在调用危险函数哪里是没有什么变化的 整体链子 还是尾部没有变化嘛还是InvokerTransformer的transf ...
- JAVA代码审计之xss
java_sec_code xss 补充和回忆一下一些开发基础 @RestController @RequestMapping(value = "/xss") public cla ...
- 嵌入式-C语言基础:指针是存放变量的地址,那为什么要区分类型?
指针是存放变量的地址,那为什么要区分类型?不能所有类型的变量都用一个类型吗?下面用一个例子来说明这个问题. #include<stdio.h> int main() { int a=0x1 ...
- EntityFramework介绍
首先我们说明一下ORM是什么. 微软官方提供的ORM工具,ORM让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上.开发人员使用Linq语言,对数据库操作如同操作Object对象 一 ...
- Spring Cloud Alibaba 从入门到精通(2023)
Alibaba Cloud 简介 Spring Cloud Alibaba 即 Alibaba Cloud ,基于 Spring Cloud 构建,同时封装了阿里巴巴的 Nacos.Sentinel ...
- 2022春每日一题:Day 39
题目:[USACO1.4]等差数列 Arithmetic Progressions 一个很显然的做法,枚举公差,首项,p,q这样的话复杂度爆炸,不过可以肯定的一点,如果我们这样做,找到了答案就可以直接 ...
- QQ登录
public function login(){ $urlencode = urlencode("http://www.zhangxuhui.com/index/Index/callback ...