来自一个电子狂的stm32学习历程
文章尾部有学习时的一些视频资料在学的可以看看那么我们就进入今天的主题我stm32的学习历程
在学习了51单片机之后,早已经对单片机这个东西甚有了解了,所有不管是从内部资源,还是一些常见应用,都可以说的头头是道。但51单片机只是一款入门级的单片机,只适合用来教学用,如果要想跟上社会的脚步,我们不应该停留在这个阶层。所以为了更深入的学习单片机,我便开始向更高端的单片机进军,而这款单片机便是STM32。
32作为一款基于ARM内核的单片机,是目前市场上最受流行的。主要的原因,就是内部资源丰富,功能强大,足足可以应对大多数产品提出的要求。当时买32开发板的时候,我是买的最便宜的Mini版,但是价格已经接近200元了。这可是我省吃俭用积攒出来的,没办法,谁让自己热爱电子呢。
收到开发板之后,我便开始了学习生涯,本以为有了51的基础,学习起来肯定很容易上手,结果我完全错了!当时学习方式有两种,一种是基于寄存器的,还有一种是基于库函数的,我选的是基于寄存器的。一开始,我先熟悉了硬件环境,后面开始进入第一个案列的学习。
当然第一个案列同样是点亮LED灯,但是这个过程不像51单片机那么简单了。首先要配置引脚模式,引脚模式有四种,由对应的寄存器控制。配置好寄存器之后,才可以进行LED的点亮操作。当时唯一的感慨就是,32的寄存器真多,多到你怀疑整个人生,回想一下51就那么十几个,而32呢,反正我没数过,几百个应该是有的!更何况51是8位的,而32直接就是32位的。
51中,我们在大脑中可以非常清晰,每个寄存器的每一位的含义。但是如果你用学51的方式这样去学32,肯定是行不通的。这时候我才真正知道,为什么大多数工程师都要有查“数据手册”的习惯,因为我们根本记不住那么多知识,只要知道怎么会用就行了。
后面随着32知识的积累,慢慢的也就习惯了其中的功能。并且后面,学习下去,我放弃了寄存器方式的学习,而是转为了基于库函数的学习。毕竟我没有那么多的时间,去了解每一个寄存器的功用。如果把他们封装起来,不需要理会其中的寄存器,直接调用对应的函数,岂不是效率提高了很多,这也正是选择库函数学习方式的理由。其实这种越往后面走,你就越会发现这种思路是适应社会的发展的,也就是后端向前端走的一个趋势,前端向应用层走的一个趋势,正如学java的人,他们完全不必知道计算机是怎么工作的,只需要如何调用API就行。
对于32的应用,我其实并没有做出太多的产品,这一切都是因为大二上学期接到了密室逃脱的项目,所以也就断了学习生涯之路,转而走向了工程这条不归路。我想这也可以解释我为什么毕业之后没有选择走研发之路,而是选择了更多的和工程打交道。
印象最深刻的一个32实践就是基于鼠标交互的32最小开发板,这是一个双层板,并且布线也是挺密集的,画板我不知道用了多少时间,但是制作的过程记忆犹新。因为那同样是我熬夜做出来的一个半成品,为什么说是半成品,因为最后发现电路板画错了/哈哈。那段时间的确是事情多,所以也就放弃了修改,不过那块半成品板子被我当成了珍藏品,至今还在我自己家中的工作室置物架上。
后面找工作的时候,发现,其实学好32还是很吃香的,很多小公司都会用32去做产品。所以,如果你自己真的非常喜欢电子这玩意,32这个单片机是一定要吃透的,这个单片机的学习是无止境的,谁让它功能强大,又顺应了时代呢,你说是吧!
(stm32串口应用)
http://www.makeru.com.cn/live/1392_1164.html?s=45051
(stm32直流电机驱动与测速)
http://www.makeru.com.cn/live/1392_1218.html?s=45051
STM32中断
http://www.makeru.com.cn/live/3523_1666.html?s=45051
(定时器)
http://www.makeru.com.cn/live/1392_1199.html?s=45051
来自一个电子狂的stm32学习历程的更多相关文章
- 大三仍是Linux系统小白的我给大家讲讲学习历程
我与Linux结缘是在大三的时候.我与Linux熟识是在偶然遇到<Linux就该这么学>的时候.因为我是电子信息工程专业,在高年级时开设了嵌入式课程,嵌入式系统是一种专用的计算机系统,作为 ...
- Nginx系列0:Nginx学习历程
Nginx学习历程 一.初识Nginx 1.Nginx适用于哪些场景 (1)静态资源服务 通过本地文件系统提供服务 (2)反向代理服务 Nginx的强大性能 缓存 负载均衡 (3)API服务 Open ...
- 【STM32学习笔记】STM32f407 使用4*4矩阵键盘
作者:李剀 出处:https://www.cnblogs.com/kevin-nancy/ 欢迎转载,但也请保留上面这段声明.谢谢! 写在前面: 这是本人第一次开始写博客,可能写的不是很好,也请大家谅 ...
- stm32学习笔记----双串口同时打开时的printf()问题
stm32学习笔记----双串口同时打开时的printf()问题 最近因为要使用串口2外接PN532芯片实现通信,另一方面,要使用串口1来将一些提示信息输出到上位机,于是重定义了printf(),使其 ...
- stm32学习笔记——外部中断的使用
stm32学习笔记——外部中断的使用 基本概念 stm32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组为一个单位的,同组间的外部中断同一时间只能使用一个.比如说,PA0,PB0 ...
- Django的第一个web程序及深入学习
本学习历程参照Practical Django Projects和http://djangobook.py3k.cn上翻译的内容进行 注:本例以本机加以说明: 根据Django的安装过程可知:在命令行 ...
- STM32学习笔记(二) 基于STM32-GPIO的流水灯实现
学会了如何新建一个工程模板,下面就要开始动手实践了.像c/c++中经典的入门代码"hello world"一样,流水灯作为最简单的硬件设备在单片机领域也是入门首推.如果你已经有了一 ...
- 一个php小白找工作的历程
一个php小白找工作的历程其实对新工作还是有点忐忑的,对于我这样一个有着特殊工作经历的来说更是如此.为了更好的迎接未来,不得不总结下过去.在经历一段时间的职业生涯探索期后,还是觉得自己更适合做程序员这 ...
- 我的Linux学习历程:那些我看过的Linux书籍们
[+]查看原图http://www.ituring.com.cn/article/119401 来北京工作已经一个多月,大都市的生活比起读大学要忙碌得多,尤其是出行,基本以小时为基本的计时单位.有时茫 ...
随机推荐
- C# - LINQ 表达式树
表达式树(Expression Tree) 表达式树是不可执行的代码,它只是用于表示一种树状的数据结构,树上的每一个节点都表示为某种表达式类型,大概有25种表达式类型,它们都派生自Expression ...
- unicode & utf-8
简单来说: Unicode 是「字符集」 UTF-8 是「编码规则」 其中: 字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point) 编码规则:将「码位」转换为 ...
- Qt 图像缩放显示
1. QImage Image; Image.load(":/images/f1.png"); QPixmap pixmap = QPixmap::fromImage(Image) ...
- 关于button去掉自带阴影效果的方法
在button的属性设置里加上: style=”?android:attr/borderlessButtonStyle” 即: <Button android:layout_width=&quo ...
- PHP 数组反转(值有重复)
public function indexssss() { $a=[ 'Input.txt' => 'Randy', 'Code.py' => 'Stan', 'Output.txt' = ...
- Windows Internals 笔记——进程的权限
1.大多数用户都用一个管理员账户来登录Windows,在Vista之前,这样的登录会创建一个安全令牌.每当有代码试图使用一个受保护的安全资源时,操作系统就会出示这个令牌.从包括Windows资源管理器 ...
- Constructing continuous functions
This post summarises different ways of constructing continuous functions, which are introduced in Se ...
- 01.pandas
01.Series # -*- coding: utf-8 -*- """ Series 객체 특징 - pandas 제공 1차원 자료구성 - DataFrame 칼 ...
- Eclipse中如何将项目转成Dynamic Web项目
项目接手前的同事是使用MyEclipse写的,拿SVN将项目导入eclipse时,web项目就会变成java项目,这时就需要修改配置文件将项目转成web,步骤如下: 1.修改项目配置文件. 要修改的项 ...
- HDU 1880 魔咒词典 (字符串hash)
<题目链接> 题目大意: 就是每个字符串有一个配套的对应字符串,询问的时候,无论输出其中的哪一个字符串,输出另一个,如果不存在这个字符串,直接输出"what?". 解题 ...