1,一款实用的开发板。

这个是实验的基础,有时候软件仿真通过了,在板上并不一定能跑起来,而且有个开发板在手,什么东西都可以直观的看到,效果不是仿真能比的。但开发板不宜多,多了的话连自己都不知道该学哪个了,觉得这个也还可以,那个也不错,那就这个学半天,那个学半天,结果学个四不像。倒不如从一而终,学完一个在学另外一个。

2,两本参考资料,即《STM32 参考手册》和《Cortex-M3 权威指南》。

《STM32 参考手册》是 ST 出的官方资料,有 STM32 的详细介绍,包括了 STM32 的各种寄存器定义以及功能等,是学习 STM32 的必备资料之一。而《Cortex-M3 权威指南》则是对《STM32 参考手册》的补充,后者一般认为使用 STM32 的人都对 CM3 有了较深的了解,所以Cortex-M3 的很多东西它只是一笔带过,但前者对 Cortex-M3 有非常详细的说明,这样两者搭配,你就基本上任何问题都能得到解决了。

3,掌握方法,勤学慎思。

STM32 不是妖魔鬼怪,不要畏难,STM32 的学习和普通单片机一样,基本方法就是:

a) 掌握时钟树图。

任何单片机,必定是靠时钟驱动的,时钟就是单片机的动力,STM32 也不例外,通过时钟树,我们可以知道,各种外设的时钟是怎么来的?有什么限制?从而理清思路,方便理解。

b) 多思考,多动手。

所谓熟能生巧,先要熟,才能巧。如何熟悉?这就要靠大家自己动手,多多练习了,光看/说,是没什么太多用的,很多人问我,STM32 这么多寄存器,如何记得啊?回答是:不需要全部记住。我至今也就只记得 STM32 的 IO 口控制这几个寄存器,因为有规律可循,好记。其他的一概不记得。学习 STM32,不是应试教育,不需要考试,不需要你倒背如流。你只需要知道这些寄存器,在哪个地方,用到的时候,可以迅速查找到,就可以了。完全是可以翻书,可以查资料的,可以抄袭的,不需要死记硬背。掌握学习的方法,远比掌握学习的内容重要的多。

熟悉了之后,就应该进一步思考,也就是所谓的巧了。

跟着例程走,无非就是熟悉 STM32 的过程,只有进一步思考,才能更好的掌握 STM32,也即所谓的举一反三。例程是死的,人是活的,所以,可以在例程的基础上,自由发挥,实现更多的其他功能,并总结规律,为以后的学习/使用打下坚实的基础,如此,方能信手拈来。

最最重要的是刚开始一定要将不懂的或者一知半解的点都研究透彻,保证基础知识都扎实,后续的学习才能更好上手,而不至于越到后面,感觉越来越难,开始打退堂鼓。

在应用的时候,先去了解电子元器件的电气特性,电路原理图,然后根据原理画出电路连接图,这样的顺序去学习嵌入式,才能更好的掌握。

如果仅仅只会驱动外部设备,不懂外部设备的运行原理,去编写代码的时候没有原理去依靠,编写代码可能会长时间卡在调试阶段,还有就是如果要去优化,在嵌入式方向的优化,不仅仅只有算法这一方面,最好的优化其实是是根据设备的电气特性以及工作原理去做驱动上的优化。

为大家分享一些学习资料

(stm32 USART串口应用)

http://www.makeru.com.cn/live/1392_1164.html?s=45051

从单片机到嵌入式linux我们需要做什么

http://www.makeru.com.cn/live/5413_1994.html?s=45051

PWM脉宽调制技术

http://www.makeru.com.cn/live/4034_2146.html?s=45051

基于STM32讲解串口操作

http://www.makeru.com.cn/live/1758_490.html?s=45051

通过Z-stack协议栈实现串口透传

http://www.makeru.com.cn/live/1758_330.html?s=45051

(stm32直流电机驱动)

http://www.makeru.com.cn/live/1392_1218.html?s=45051

STM32单片机的学习方法(方法大体适用所有开发版入门)的更多相关文章

  1. stm32单片机利用ntc热敏电阻温度转换公式C语言版

    首先 我们需要明确电路结构 热敏电阻的原理就不再赘述,本文不凑字数,只讲干货 必须要知道的就是串联电阻R9程序中定义为resistanceInSeries ,精度越高越好 为了方便,先在程序中定义好你 ...

  2. 使用 VSCode 开发调试 STM32 单片机尝试

    使用 VSCode 开发调试 STM32 单片机尝试 本文记录基于 Windows + DAP-Link 开发 STM32F103C8T6 的实践过程,其他操作系统或芯片应该也只是大同小异的问题. 注 ...

  3. 龙邱STM32单片机用J-LINK下载无法被识别的解决方法

    问题如下: 按照正常步骤使用keil5给龙邱的stm32下载程序,SWD下载方式提示no cortex-m sw device found,JTAG方式提示no cortex-m device fou ...

  4. 关于STM32单片机的IAP实现

    基于STM32F103单片机的IAP实现(虽然该篇文章不会详细写出实现细节,但是会从一个全局的角度讲述,实际的实现细节只需根据datasheet即可完成). 一.基础概念 什么是IAP?IAP即在应用 ...

  5. 单片机入门学习笔记8:STM32单片机使用

    经常会在某个QQ群里看见某人的QQ昵称的名字"不会32绝不改名",其实无论会不会,之后名称都改了. STM32单片机在我看来就三部分组成:各部分的初始化,中断的使用,Main函数内 ...

  6. STM32单片机的软件重启和远程重启

    STM32单片机可以通过以下代码实现重启(core_cm3.h).同时如果利用AT命令进行无线通讯,服务器后台和客户端之间用MODBUS通讯即4G+MODBUS RTU,可以利用F05写单个线圈的方法 ...

  7. STM32单片机应用与全案例实践 /stm32自学笔记 第二版 pdf

    STM32单片机应用与全案例实践pdf https://pan.baidu.com/s/16WrivuLcHvLTwS__Zcwl6Q 4rj3 stm32自学笔记 第二版 pdf https://p ...

  8. Linux下开发STM32单片机

    一开始学习51单片机就是用的MDK这个IDE软件,IDE软件虽然看起来直观好像更加容易入门(因为有界面看起来很形象),但是实际上IDE却是向我们这些入门人员隐藏了背后真实存在的过程,让我们以为编译就是 ...

  9. 小白转行入门STM32----手机蓝牙控制STM32单片机点亮LED

    @ 目录 引言导读 一.通信基础知识 1.1 通信到底传输的是什么? 1.2 比特率和波特率 习题 1.1 双工和单工 习题 1.2 串行和并行 1.3 异同通信和同步通信 习题 二.连接STM32单 ...

随机推荐

  1. noip模拟测试52

    这套题总体来说比较简单,但是有一些分数我没有拿到,先说T1,我10分钟左右打完了60分的暴力,然后就开始打表找规律,好像只有我去找了循环节,找规律找了一个多小时,到八点四十的时候我还没有正解做法,就直 ...

  2. linux中花括弧大括号用法

    {1,3,5}   ==  1 3 5 {1..5}   ==  1  2  3  4  5 {a..e}  ==  a b c d e {A..z} {1..50..2} {1..50..3} {1 ...

  3. java的split方法中的regex参数

    我们需要以|进行分割,为了匹配|本身,正则中采用\|进行转义,而Java中\也表示转义,从java到正则需要必须使用\\|进行转义,即split中的\\表示正则的转义.

  4. 自制计算器 v1.1

    之前的v1.0版本功能还不够完善,这个版本一并做了修改. 代码,每个sub表示哪个按钮做了注释. Dim a, temp, ans As Integer Dim op As String Sub sh ...

  5. js复制功能代码

    js复制代码: http://www.clipboardjs.cn/

  6. mysql 基础配置经验

    创建库: 排序:utf8_unicode_ci和utf8_general_ci对中.英文来说没有实质的差别.utf8_general_ci校对速度快,但准确度稍差. 普遍的意思utf8_unicode ...

  7. Docker系列(2)- Docker中的名词概念

    Docker工作流程 名词概念 镜像(image): docker镜像就好比一个模板,可以通过这个模板来创建容器服务,tomcat镜像===>run===>tomcat01(提供服务器) ...

  8. Shell系列(4)- 历史命令

    格式:history [选项] [历史命令保存文件] 选项: -c:清空历史命令 -w:把缓存中的历史命令写入到历史命令保存文件~ /.bash_history;用户的家目录下 例子: [root@l ...

  9. Windows系统如何找到占用端口的进程并杀掉

    1.先建立用户环境变量:C\WINDOWS/system32 2.输入:cmd,打开命令控制台,然后输入ipconfig 3.再输入:netstat -ano(可以找到所有的进程连接端口及对应PID) ...

  10. Uncaught TypeError: upload is not a function at HTMLInputElement.onclick

    js 中标签的id名称不能和方法名一样, <tr> <td><input type="button" id="login" val ...