嵌入式搬砖道路上的大三狗一枚,撑死算个初学者吧。才学有限,下面仅仅是本人对STM32学习的一点心得与建议,希望对题主有帮助吧。

  心得:本人当初学习STM32的时候有一些跟风的因素,自以为学的芯片越多就越厉害 =_=、 其实,学习嵌入式重要的是整体的工程思想和项目经验积累,说到底这些芯片,我感觉学习起来都差不多吧,无非就是对内资源(寄存器、中断、定时器、串口等等),和对各种外设的操作而已,挂载的外设越多,系统会越复杂,这时可能会用上操作系统,同时,如果工程中涉及到各种算法、自动控制、采样、滤波等实际问题的时候,不仅会上操作系统,而且还对数学、物理、电路等方面知识要有较强的功底,对编程的能力的要求会更高,此时就要求对STM32的各种资源有比较明晰的了解了。

  回到问题,题主问:如何系统的学习STM32?(这个问题,,,讲句实话,以本人的水平,真的不敢强答 =_=,才学有限,仅仅提几点建议吧)建议:

  1、要动手实践,要动手实践,要动手实践!下面有位答主也提到了,工科类的东西光看是不够的!算法如何实现,自己独立设计再动手去敲一敲就知道了;外设如何驱动,找到芯片手册,照着时序图自己敲一遍;涉及到操作系统部分的内存管理与进程调用,找到源码仔仔细细研读几遍(自己应该写不出吧 =_=),相信你一定会很有收获的,可能我这个方法比较笨,但是确实挺实用的,个人觉得。

  2、准备好资料与开发板相信很多人都有这样的意识吧,学一款芯片首先想到的是买一块开发板,对的,没错!巧妇难为无米之炊嘛,这里推荐两本书《C和指针》、《Cortex-M3权威指南》和《STM32库开发实战指南》网上都有PDF版本,结合自己的开发板配套的视频教程(某火的讲的就不错,需要的话私信发给你),先要理解透彻,然后自己独立去敲一敲,触类旁通,例子上给出的都不会很难,知识的拓展很重要,就是举一反三。

  还有,不懂得话就多去各大论坛大神虚心请教,论坛里有很多经验帖子值得学习。

  3、库开发与寄存器开发?现在STM32入门门槛都不高,稍微有点C语言和单片机基础的都能学,有人说:寄存器操作那么复杂难懂,那一堆寄存器名字都记不住,,,那寄存器开发是不是就不重要了?显然不是,我会说大牛与菜鸟的却别就在这儿?尽管我也很菜。。。

  建议:库开发为主,看寄存器是为了理解实现的原理,所以寄存器部分不能丢了。有余力可以深入学习下,这对M3内核的理解很有帮助,以及后面ARM系列芯片的学习都很有帮助。

  4、多做东西。在实际工程项目中去锻炼能力题主才大一,若对这一块感兴趣的话,可要把51单片机的知识深入透彻地学扎实哟,这是基本功。

  尽量争取加入实验室,跟着学校实验室的老师、学长,学姐,并积极参加校内外组织的各种比赛,如电赛、全国STM32大赛,飞思卡尔智能车,四旋翼等等。一开始不懂没关系,只要他们不嫌弃你,积极好学、不要怕苦!(在实验室里要谦虚、好学、低调啊,切勿装逼!否则被打脸是很惨的,别问我怎么知道的 =_=........),有条件的话,可以组建团体去接外面的项目,当然要经过老师同意,或者代做毕业设计也是条财路 【 手动斜眼】

  5、勤总结,有整体思想。形成自己的总结文档、代码风格可能很多人都没有这个习惯,包括当初本人自己,拿到一个课题或者项目的时候,大概写一下流程,就开干,途中遇到很多问题,程序改了又改,从v1.0改到v10.0都还有BUG,,,究根到底,还是自己学得不够透彻不够扎实,没有一个整体的概念,知识零散杂乱,不成体系。有时候,程序框架、流程都没有错,就因为时钟PLL配置上的冲突,导致一个礼拜BUG找不出来,,,所以,形成良好的编程习惯、勤写注释、善于总结真的很重要!最好能形成文档,这绝对是最好的经验积累形式!

  暂时就写这么多吧,本人才疏学浅,如有不对之处望大神斧正

  自建嵌入式单片机stm32学习交流群一个欢迎各位不管是大神还是正在学习的路上艰苦前行的朋友一起来学习交流自己的经验有问题大家一起解决:816509137

单片机小白应该如何学习stm32的一些实践心得!的更多相关文章

  1. 学习STM32单片机,从菜鸟到牛人就是这样简单(配视频资料)

    我想说,为了学习单片机而去学习单片机的思路不对. 你问,如何系统地入门学习stm32? 本身就是一个错误的问题.假如你会使用8051 , 会写C语言,那么STM32本身并不需要刻意的学习. 你要考虑的 ...

  2. 学习STM32,你不得不了解的五大嵌入式操作系统

    学习STM32,你不得不了解的五大嵌入式操作系统                                                  原标题:学习STM32,你不得不了解的五大嵌入式操作 ...

  3. 小白的CTF学习之路2——二进制数据基础与运算(上)

    今天的第二更,被我拖到了傍晚,嘿嘿,二进制这方面让本就数学不好的我很头疼,所以研究了一段时间 在学习之前我们先了解几个问题: 32位是几个字节? 01011100对于十进制是多少? 00001111向 ...

  4. 单片机小白学步系列(二十) IO口原理

    IO口操作是单片机实践中最基本最重要的一个知识,本篇花了比較长的篇幅介绍IO口的原理. 也是查阅了不少资料,确保内容正确无误,花了非常长时间写的. IO口原理原本须要涉及非常多深入的知识,而这里尽最大 ...

  5. 单片机小白学步系列(十三) 点亮第一个LED——好的開始,成功的一半

    前面介绍了非常多概念知识.做了非常多准备工作,从这一节開始,我们正式開始单片机的学习.我们将使用单片机完毕一项非常easy的工作:点亮一个发光二极管(即LED:Light-Emitting Diode ...

  6. 单片机小白学步系列(十四) 点亮第一个LED的程序分析

    本篇我们将分析上一篇所写的程序代码.未来学习单片机的大部分精力,我们也将放在程序代码的编写上. 可是不用操心.我会很具体的介绍每一个程序的编写思路和各种注意事项等. 之前我们写的程序例如以下: #in ...

  7. 零基础学习STM32之入门学习路线

    可以说就目前的市场需求来看,stm32在单片机领域已经拥有了绝对的地位,51什么的已经过时了也只能拿来打基础了,最后依然会转到stm32来,也正是因为这样stm32的学习者越来越多,其中不难发现绝大部 ...

  8. 适合新手小白的UI学习路线完整版

    UI设计是很多年轻人活着想转行学习的人的新职业目标,越来越多的人看到UI设计良好的就业发展前景,纷纷投入到UI设计的大军中来,想学习UI设计,很多小白并不知道从何开始学起,用什么样的方法去学习,所以今 ...

  9. Extjs的学习及MIS系统实践应用(系列文章)

    本系列文章从Extjs的实际运用出发,结合系统开发的实践经验,详细解释Extjs的基本控件及控件扩展的用法,和在平时的学习运用中一步一步查阅的资料.积累经验的集锦.标题及链接奉上,用一个小程序,开启了 ...

随机推荐

  1. sed 替换多个空格为一个

    sed -i 's/[ ][ ]*/ /g'  file.txt

  2. Saltstack之Scheduler

    一.引言: 在日常的运维工作中经常会遇到需要定时定点启动任务,首先会考虑到crontab,但是通过crontab的话需要每台机器下进行设置,这样统一管理的话比较复杂:通过查百度和google发现sal ...

  3. redis详解(三)-- 面试题(转载)

    1. 使用redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,li ...

  4. Unity应用架构设计(4)——设计可复用的SubView和SubViewModel(Part 1)

    『可复用』这个词相信大家都熟悉,通过『可复用』的组件,可以大大提高软件开发效率. 值得注意的事,当我们设计一个可复用的面向对象组件时,需要保证其独立性,也就是我们熟知的『高内聚,低耦合』原则. 组件化 ...

  5. caffe可重入单例机制分析

    一个函数可重入是指该函数可以被多个线程同时调用.大多数函数都不是可重如的,因为很多函数会修改静态数据结构里的内容,如果多个线程同时调用,势必破坏共享的静态结构.可以在不改变公共接口的情况下,将一个非重 ...

  6. iOS开发之duplicate symbols for architecture x86_64错误

    [主要内容:] 1. 错误提示 2. 分析错误原因 3. 解决问题办法 一.错误提示   在我们写代码过程中可能会经常遇到这样一个错误: <span style="font-size: ...

  7. 现代php编程

    自动加载__autolaod和spl_autoload_register() 自动加载就是指如果找不到某个类如何处理的方式,具体可参见此文,可以说spl_autoload_register是更加高级, ...

  8. 【转载】多模式串匹配之AC自动机

    原文地址:https://www.cnblogs.com/codeape/p/3845375.html 目录 [隐藏] 一.概述 二.AC算法思想 三.字典树tire的构造 四.搜索路径的确定 附录: ...

  9. tensorflow, TypeError:'Tensor' object is not callable

    解决办法:两个tensor相乘,需要加“*”.

  10. 3 ansible-playbook 条件语句-外部变量使用

    外部变量指的是从playbook文件之外获取的数值 lookups file file是我们经常使用的一种lookups的方式,它的原理就是使用python的codecs.open打开文件然后把结果返 ...