嵌入式推荐阅读
包含了个人平时所关注公众号、B站视频、博客收集而来。排名顺序不分先后,建议有时间就多可以看看。知识是靠日积月累、一点一滴攒起来的。
或者有些人想要问,这么多内容,怎么可能全部记在脑子里面。我个人认为有的知识,可以不深入理解,但是要知道有这个问题的存在,以后遇到能知道要找哪些资料研究,而不是无头苍蝇不知去向。
说起来已经好久没有更新博客了,主要原因还是太忙了,现在暑假终于有时间慢慢思考平时学到的内容。这个月应该会陆陆续续更新一些这个学期学到的内容。
内容很多,欢迎点赞(才有动力更新)、收藏(才不会迷路)、关注(才会有下一期) 😃
C语言相关
C语言作为嵌入式开发的最常用的语言,还是很有必要学好,学深的
-
- 宏的使用技巧
-
- 都是一些c语言常用到,却很少深入思考的知识点
-
- 高级文章,有点深奥,可以试着看看,从底层讲了c++中右值相关的内容
-
- 共连体的常用用途,估计很多人都可能不知道C语言有这个语法
-
- C语言的内存分区
-
- 在编写bsp时基本上都要规范代码的安全性检查
-
- 有兴趣的可以看看,看完能让你更加了解C语言在计算机上的是怎么运行的,相比其他c语言教程,讲得更加深入底层
嵌入式相关
嵌入式开发相关的文章,包括各种常见架构(开发思想)、常用代码片段
-
- 这篇文章很值得看,在裸机开发中的最常用的思想
-
- 这篇文章后面的链表相关内容可以看看
-
- 解藕的常见思路,代码少的时候用不上,以后代码多了这个思路可以用用
-
- IDLE 中断是串口空闲中断,所为的空闲,是指串口数据超过了一个数据帧没有接受到数据
-
- 硬件定时器不够就靠软件定时器凑,但如何设计一个好的软件定时器,可以参考linux的设计
-
- 虽然不是我们常用的stm32,但是具有参考价值
-
- 比较底层却很值得了解的内容
-
- 常用写法
-
- 一个比较基础的软件定时器
-
- 很多时候,明明有别人封装好的库,但是为什么还是建议你们要明白这个库本质是帮你做了哪些事情,了解底层?读完这文章应该能引起一些思考
-
- 在现在接触到的开发,功能都是比较少的,对设计模式是没有需求的。但是如果了解过了,在平时阅读大的开源项目的代码的时候,能够更得心应手
-
- 重新梳理一下C语言开发中的技巧
-
- gdb是最常用的c语言调试器
-
- 编译时实际上可以做到指定某些文件为某个优化级别
-
- 这也是为什么现在hal库逐渐成为主流的原因
-
- 环形缓冲区是非常常用的一种方案
-
- 步进电机运动的原理
-
- 可以参考看看
-
- 如果不是看了文章,会有多少人留意到这个细节
深入底层
了解底层在很多时候可能看起来没什么用,但是当你平时出现BUG的时候,它能让你有更多的排查方向。
-
- 手搓cpu,可以了解一下
-
- 如果能实现一个简单的虚拟机,将对理解计算机底层有很大作用
-
- 反直觉的:使用结构体效率更高
-
- rtos开发常见问题
-
- BootLoader作为应用更新,在大部分的消费电子领域都是不可或缺的
扩展视野
深度重要,但是广度也是不可或缺的
-
- 这文章很好,讲了网络相关的知识,让你明白ip地址,mac地址,子网掩码相关的用途,还有网络数据包在底层的传输过程
-
- 了解机器人的大环境
-
Keil实用小技巧 | Keil利用AStyle插件格式化代码
- 工具推荐
-
- 傅里叶变换,这视频讲了从理论学习到实际应用的过程之一,即从理想情况的连续变为现实情况的离散。
- 傅里叶变换和其逆变换是一个重要的知识,不过现在我们大多数情况下用不上的。但是想要和你们说的是,学习信号与系统也是能很有意思的,学校老师教的纯粹理论确实很难听明白,但是可以去b站找些科普视频看看,可以帮你们梳理一下脉络,提升你们的兴趣。包括线性代数,可以去看看3b1b的科普视频。了解一下线性代数矩阵运算对应的几何变换,你会发现它是非常的妙,并且在以后你们学习运动学的时候,看一些算法就是基于线性代数上面的。虽然吧,简单的运动利用高中的数学知识都能搞定,但是就像我之前和你们说的,数学对于我们是一个工具,工具越高级,可能使用门槛会增加,但是能将问题更容易的解决。
-
- "动态规划是一个很经典的算法题目类型,这文章讲得很好。大部分人一开始遇到动态规划的题目,都会想着用穷举来解决,这种就是写业务代码写太多之后,下意识选择一个最简单的方向去做,但是那样做出来的结果无论是从实用性还是实现难度来说都不是好方案.关于算法,很多时候会感觉学到算法根本用不上,是一个没有实际意义的智力游戏。但其实就如同数学一样,上街买菜用不上微积分,只是因为我们现在写的代码,都是没有水平的业务代码(实现特定业务逻辑或功能的代码),看看我们学过的pid,假如没有学过微积分,能创造出来吗?并且我们很多时候说的编程思维在算法就体现得很明显,将问题抽象出来,确定已知量,使用算法求未知,并且将这个过程使用计算机代码实现。
- 所以学算法是有价值的,能拓展你们解决问题的可选项,是跳出写业务代码能力圈子的一个学习方向。
- 因此,现在很多互联网公司招程序员,算法题目在面试是必考项。(不过我们这边涉及硬件的不是,所以学多少就看你们的时间尽力而为)
硬件知识
即便是专注嵌入式软件开发,但基础的硬件也是很重要的一环。毕竟谁没有一个全栈的梦?: )
-
四层PCB 最简单终教学 高校培训课程 深入浅出 不会电路也能学会 设计PCB设计
- 四层板相比二层板,不单只是多了两层可以走线,感兴趣的可以了解一下
-
- 了解历史可以了解IO设计是如何迭代的,每次迭代解决了什么问题
-
- 电源必读系列
-
- 常见的电子元件封装,了解一下就行
-
- 包含了0欧电阻常见的用法