文章尾部有学习时的一些视频资料在学的可以看看那么我们就进入今天的主题我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学习历程的更多相关文章

  1. 大三仍是Linux系统小白的我给大家讲讲学习历程

    我与Linux结缘是在大三的时候.我与Linux熟识是在偶然遇到<Linux就该这么学>的时候.因为我是电子信息工程专业,在高年级时开设了嵌入式课程,嵌入式系统是一种专用的计算机系统,作为 ...

  2. Nginx系列0:Nginx学习历程

    Nginx学习历程 一.初识Nginx 1.Nginx适用于哪些场景 (1)静态资源服务 通过本地文件系统提供服务 (2)反向代理服务 Nginx的强大性能 缓存 负载均衡 (3)API服务 Open ...

  3. 【STM32学习笔记】STM32f407 使用4*4矩阵键盘

    作者:李剀 出处:https://www.cnblogs.com/kevin-nancy/ 欢迎转载,但也请保留上面这段声明.谢谢! 写在前面: 这是本人第一次开始写博客,可能写的不是很好,也请大家谅 ...

  4. stm32学习笔记----双串口同时打开时的printf()问题

    stm32学习笔记----双串口同时打开时的printf()问题 最近因为要使用串口2外接PN532芯片实现通信,另一方面,要使用串口1来将一些提示信息输出到上位机,于是重定义了printf(),使其 ...

  5. stm32学习笔记——外部中断的使用

    stm32学习笔记——外部中断的使用 基本概念 stm32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组为一个单位的,同组间的外部中断同一时间只能使用一个.比如说,PA0,PB0 ...

  6. Django的第一个web程序及深入学习

    本学习历程参照Practical Django Projects和http://djangobook.py3k.cn上翻译的内容进行 注:本例以本机加以说明: 根据Django的安装过程可知:在命令行 ...

  7. STM32学习笔记(二) 基于STM32-GPIO的流水灯实现

    学会了如何新建一个工程模板,下面就要开始动手实践了.像c/c++中经典的入门代码"hello world"一样,流水灯作为最简单的硬件设备在单片机领域也是入门首推.如果你已经有了一 ...

  8. 一个php小白找工作的历程

    一个php小白找工作的历程其实对新工作还是有点忐忑的,对于我这样一个有着特殊工作经历的来说更是如此.为了更好的迎接未来,不得不总结下过去.在经历一段时间的职业生涯探索期后,还是觉得自己更适合做程序员这 ...

  9. 我的Linux学习历程:那些我看过的Linux书籍们

    [+]查看原图http://www.ituring.com.cn/article/119401 来北京工作已经一个多月,大都市的生活比起读大学要忙碌得多,尤其是出行,基本以小时为基本的计时单位.有时茫 ...

随机推荐

  1. 人工智能-调百度AI接口+图灵机器人

    1.登陆百度AI的官网 1.注册:没有账号注册 2.创建应用 3.创建应用 4.查看应用的ID 5.Python代码 from aip import AipSpeech APP_ID = " ...

  2. spring事务源码分析结合mybatis源码(三)

    下面将结合mybatis源码来分析下,这种持久化框架是如何对connection使用,来达到spring事务的控制. 想要在把mybatis跟spring整合都需要这样一个jar包:mybatis-s ...

  3. IDEAL字体颜色修改

    IDEA 炫酷的主题字体颜色设置(基于IDEA 2018)前言: IDEA中主题可以更换,大家可以直接到 http://www.riaway.com/  网站或 http://color-themes ...

  4. Linux Django项目测试

    步骤 django项目: 依赖包 [root@web01 ~]# yum install openssl-devel bzip2-devel expat-devel gdbm-devel readli ...

  5. 【原创】运维基础之Nginx(1)简介、安装、使用

    官方:http://nginx.org nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a ...

  6. Java项目使用SQLite数据库后无法启动的问题

    背景: Java > maven 的 jar 项目 功能是记录用户的每天的按键次数 使用 jar2exe 工具将 jar 转为 exe 可执行文件 原本项目中使用的Mysql数据库,使用Myba ...

  7. centos/linux/ubuntu在局域网上网

    前言:对于服务器来说,一般不会安装windowns系统,都是会安装类unix系统,在局域网或者在内网中,上网还是走代理上网 1.知道代理服务器的ip及端口 2.就两条命令 export  http_p ...

  8. Python-数据类型之列表

    列表和元祖都属于序列类型,该序列内可以包含任意数据类型,且数据存储是有序的,索引从0到1 一:列表概述 1.1  如何定义一个列表 中括号,已逗号为分割符,可以放任意的数据类型,甚至是对象. li = ...

  9. EChart 文字大小调整 饼状图为例

    一.EChart图中的文字调整(以饼图为例) 二.源码: { "title": { "text": "", "subtext&qu ...

  10. 使用 RAII 完成线程等待

    当使用 std::thread 对象执行线程时,必须要调用 join() (或者 detach(),由于 detach() 可以立即调用,所以这里只考虑 join()) #include <io ...