本文已参与掘金创作者训练营第三期「高产更文」赛道,详情查看:掘力计划|创作者训练营第三期正在进行,「写」出个人影响力。
此文是本人以电子小白的身份,从单片机开始入电子坑以来的自我反省与总结(踩得坑有点多)。也是【初入电子坑】系列个人笔记的索引。
本文主要内容
- 导言
- 学单片机的原因
- 前置知识
- 学习经历
- 自我总结与建议
- 笔记索引
导言
本系列笔记将以stm32单片机为切入点,学习相关的底层原理,以便后续根据需求,可以快速的上手其他型号的单片机。
从目前个人经验来看,初入电子坑,把单片机玩起来还是不太难的。只需要一些相对简单的前置知识即可。后续需要用到,但不在前置知识范围的知识点,会在后续笔记中提及。
学单片机的原因
为什么进电子坑以学单片机为切入点呢?因为单片机又叫MCU(微信控制器)。我们可以通过软件编程,让MCU完成我们想要对物理设备的控制。这里的物理设备可以是机械臂、摄像头、台灯等等等等。
而想要用MCU完成对物理设备的控制,我们理所当然就要学习它的使用方法,想要用它为所欲为的话更是要掌握它的工作原理。这些理由都很充分了吧~
所以,单片机可以看成是跟编程语言一样的东西,下图是我偶像稚晖大佬的表述。
单片机的芯片型号有很多,每个厂商的都不一样。虽然它们在性能上、操作上各有差异,本质上的作用都是一样的——它是个微型控制器。当我们通过一款单片机入门,学习了相关的底层原理后,学习其他的单片机相对来说就比较简单了。
前置知识
- 初中电学基础知识
- C语言
具体来说,C语言需要掌握最基本的三种逻辑结构 顺序、条件、循环 。且对指针得有一个简单的基本认识,会使用结构体。至于其他的细节,遇到的时候不懂都可以立马现查。
学习经历
刚入门时,买的是正点原子的板子和看他家的视频。但看了几个视屏后发现,正点家的视频省略了很多对没有基础的初学者来说很重要的细节。当时不知道只是因为他家没有说清楚,误认为是自己理解能力的问题。。。学得有点自闭,LED都没点到就弃疗了。
后面想着以赛促学报名了蓝桥杯的嵌入式组,学校的辅导老师让我去看野火的视频学习。发现那边对小白比较友好,而且学习文档写得也很详细,就以此为主要资源学下去了。
但这个教程是16年制作的,教授过程的逻辑还有点不够成熟,经常是细节的地方细节过头,让初学者很容易缺少了对知识本身的整理脉络的掌控。所以有时也会让我看得有点懵逼。(野火家新出的hal库教学视频在原理传授上已经解决了此问题。)
而且我属于有点求知欲过于旺盛。。。总想把所有知识点都扒个底朝天,直接导致学一个知识点的时候冒出了很多个为什么,然后由于自身知识体系的缺失,深入到一定程度的时候就很费力,且研究很久后,还是感觉有点一知半解。
最后,是因为老师每隔一段时间都要我给他汇报最近的学习进况和对相关知识理解。在我每次开始转牛角尖的时候,把我往回拉了一下,才让我放弃了再次弃坑的冲动。。。磕磕碰碰的硬着头皮挺过来。。。
自我总结与建议
比赛确实是促进我们学生党成长的好方法之一。如果不是因为这次报名了蓝桥杯的比赛,我这菜鸡还真不一定能在钻了辣么多次牛角尖的情况下坚持自学下来。
当时寒假还曾因为自己学得慢,在知乎发了这么个问题:
对于嵌入式学习,应该克制求知欲吗?嵌入式工作者应该如何把握对原理掌握的深浅?
对于这个问题,我现在已经有了自己的答案。
如果身边有老司机能快速解答你心中的疑惑,亦或者这个东西在网上比较容易找到答案的话,那就不应该克制!不要委屈自己,follow your heard~
但这种情况我觉得很多时候,是很难实现的。那么,与其自己死抠那个知识点,不如先跳脱出来,先把程序跑起来。先看到现象,再根据代码理清现象逻辑,再追究它背后的底层原理。这么学习起来应该会轻松愉快很多。
当然就算是以这个流程走,初学的时候,有些涉及到原理背后的设计思想方面的环节,很难找到相关资料的。。。我钻牛角尖的时间基本都耗在这上面了。。。因为我比较贪,我想要的是通过知其所以然,以后转其他平台的时候可以偷多点懒hhh。
笔记索引
以下是本人以野火stm32指南者视频为主线,夹杂其它参考资料以及个人理解总结的笔记。
对于每个知识点,大致会从 :
- 这个是什么?
- 有啥用?为什么需要它?
- 怎么用(配置)?
三个维度去记录。
stm32相关原理
- 【初入电子坑之stm32篇(一)】初识stm32与寄存器编程
- 【初入电子坑之stm32篇(二)】固件库编程
- 【初入电子坑之stm32篇(三)】位带操作
- 【初入电子坑之stm32篇(四)】理解时钟系统
- 【初入电子坑之stm32篇(五)】理解中断系统与stm32中断设置
- 【初入电子坑之stm32篇(六)】定时器基础与Systick
- 【初入电子坑之stm32篇(七)】普通定时器与通用定时器
- 【初入电子坑之stm32篇(八)】高级定时器
- 【初入电子坑之stm32篇(九)】USART——串口通信
- 【初入电子坑之stm32篇(十)】存储器分类
- 【初入电子坑之stm32篇(十一)】stm32的I2C设置 与 软件模拟
- 【初入电子坑之stm32篇(十二)】stm32的SPI设置 与 软件模拟
- 【初入电子坑之stm32篇(十三)】初识DMA 与 stm32的DMA配置
- 【初入电子坑之stm32篇(十四)】初识ADC 与 stm32的ADC配置
单片机通用通信协议:
- 【初入电子坑之通信入门篇(一)】基础知识
- 【初入电子坑之通信入门篇(二)】串口通信
- 【初入电子坑之通信入门篇(三)】I2C协议
- 【初入电子坑之通信入门篇(四)】SPI协议
未完待续~