STM32单片机的学习方法(方法大体适用所有开发版入门)
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单片机的学习方法(方法大体适用所有开发版入门)的更多相关文章
- stm32单片机利用ntc热敏电阻温度转换公式C语言版
首先 我们需要明确电路结构 热敏电阻的原理就不再赘述,本文不凑字数,只讲干货 必须要知道的就是串联电阻R9程序中定义为resistanceInSeries ,精度越高越好 为了方便,先在程序中定义好你 ...
- 使用 VSCode 开发调试 STM32 单片机尝试
使用 VSCode 开发调试 STM32 单片机尝试 本文记录基于 Windows + DAP-Link 开发 STM32F103C8T6 的实践过程,其他操作系统或芯片应该也只是大同小异的问题. 注 ...
- 龙邱STM32单片机用J-LINK下载无法被识别的解决方法
问题如下: 按照正常步骤使用keil5给龙邱的stm32下载程序,SWD下载方式提示no cortex-m sw device found,JTAG方式提示no cortex-m device fou ...
- 关于STM32单片机的IAP实现
基于STM32F103单片机的IAP实现(虽然该篇文章不会详细写出实现细节,但是会从一个全局的角度讲述,实际的实现细节只需根据datasheet即可完成). 一.基础概念 什么是IAP?IAP即在应用 ...
- 单片机入门学习笔记8:STM32单片机使用
经常会在某个QQ群里看见某人的QQ昵称的名字"不会32绝不改名",其实无论会不会,之后名称都改了. STM32单片机在我看来就三部分组成:各部分的初始化,中断的使用,Main函数内 ...
- STM32单片机的软件重启和远程重启
STM32单片机可以通过以下代码实现重启(core_cm3.h).同时如果利用AT命令进行无线通讯,服务器后台和客户端之间用MODBUS通讯即4G+MODBUS RTU,可以利用F05写单个线圈的方法 ...
- STM32单片机应用与全案例实践 /stm32自学笔记 第二版 pdf
STM32单片机应用与全案例实践pdf https://pan.baidu.com/s/16WrivuLcHvLTwS__Zcwl6Q 4rj3 stm32自学笔记 第二版 pdf https://p ...
- Linux下开发STM32单片机
一开始学习51单片机就是用的MDK这个IDE软件,IDE软件虽然看起来直观好像更加容易入门(因为有界面看起来很形象),但是实际上IDE却是向我们这些入门人员隐藏了背后真实存在的过程,让我们以为编译就是 ...
- 小白转行入门STM32----手机蓝牙控制STM32单片机点亮LED
@ 目录 引言导读 一.通信基础知识 1.1 通信到底传输的是什么? 1.2 比特率和波特率 习题 1.1 双工和单工 习题 1.2 串行和并行 1.3 异同通信和同步通信 习题 二.连接STM32单 ...
随机推荐
- MySQL索引、事务、存储引擎
一.MySQL 索引 1.索引的概念 ●索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址).●使用索引后可以不用扫描 ...
- Spring Cloud Gateway 学习+实践
官网上给出的Spring Cloud Gateway特性如下图所示: 翻译过来就是: 基于 Spring Framework 5 ,Project Reactor 以及 Spring Boot 2.0 ...
- Tars | 第2篇 TarsJava SpingBoot启动与负载均衡源码初探
目录 前言 1. Tars客户端启动 @EnableTarsServer 2. Communicator通信器 3. 客户端的负载均衡调用器LoadBalance 最后 前言 通过源码分析可以得出这样 ...
- python实现查找图片相同的id及重复个数
import os #os:操作系统相关的信息模块 import random #导入随机函数 #存放原始图片地址 data_base_dir = r"C:\Users\Administra ...
- 深入浅出WPF-08.Event( 事件)01
事件(Event) 首先我们来继续说一下UI组件树,因为WPF事件 的路由环境就是组件树.WPF中的树有两种,一种是逻辑树(Logical Tree),一种是可视元素树(Visual Tree).逻辑 ...
- 前端规范之Git提交规范(Commitizen)
代码规范是软件开发领域经久不衰的话题,几乎所有工程师在开发过程中都会遇到或思考过这一问题.而随着前端应用的大型化和复杂化,越来越多的前端团队也开始重视代码规范.同样,前段时间,笔者所在的团队也开展了一 ...
- Redis高可用解决方案:哨兵(Sentinel)
哨兵是Redis的高可用解决方案:由多个哨兵组成的系统监视主从服务器,可以将下线的主服务器属下的某个从服 务器升级为新的主服务器,继续保障运行. 启动并初始化Sentinel redis-sentin ...
- AtCoder Beginner Contest 221 A~E题解
目录 A - Seismic magnitude scales B - typo C - Select Mul D - Online games E - LEQ 发挥比较好的一场,就来搓篇题解. F ...
- GKCTF 2021 Reverse Writeup
前言 GKCTF 2021所以题目均以开源,下面所说的一切思路可以自行通过源码对比IDA进行验证. Github项目地址:https://github.com/w4nd3r-0/GKCTF2021 出 ...
- C++面向行输入:get()与getline()
面向行的输入:get()与getline() 引入: char a = 's';//这样的语句合法 char b = "s";//不合法 /* "S"不是字符常 ...