【STM32系列教程】0x01 如何自学

最重要的一集!最棒的STM32的自学资料和自学方法~

关于怎么搜索

抛弃百度,善用谷歌

互联网上的中文计算机资源和英文资源比起来差的十万八千里。可以说中文计算机资源生态就是依托答辩。CSDN上大量从不明来源复制粘贴的低质量博客、各种采集站/反代站在搜索引擎的权重反而还高。所以,抛弃百度吧。

英文互联网上有着大量的优质内容,包括各种教程+各种论坛里的反馈帖子,大概率能找到想要的内容。

我们实验室的wifi已经内置了魔法上网功能,宿舍上谷歌需要自备魔法上网工具。

前置知识

嵌入式开发属于较为底层、接近硬件电路的一种计算机开发,所以了解一些硬件电路知识和计算机结构知识对于学习STM32有很大的帮助。

UIC在大二开设了Computer Organization的课程,其中有较为相关的内容,但是学习的不深。

你可以选择自学网络上非常出名的CMU CS15213: CSAPP课程。它的难度较大,但是可以很好的帮助你理解计算机系统。

关于STM32的自学资料

STM32有多种开发方式,我们使用STM32Cube和HAL库开发,网上找资料时需要注意教程是用什么方式开发的

手册不是用来通读的,是在用到对应内容的时候用来查阅的。比如STM32F4HAL库手册,我通常会先阅读HAL xxxxx Generic Driverxxxxx Firmware driver API descriptionHow to use this driver部分,然后再去浏览部分会用到的接口函数。这样能较大的提高效率。

以下是最推荐的嵌入式自学资料,希望大家自学时能时常翻阅官方手册

以下是其它的自学资料

你可以在以下地方寻找教程

关于解决报错和bug

如果遇到不能解决的问题,你可以在论坛上提问。Stack Overflow是知名计算机论坛,包含各种疑难杂症的帖子,有无法解决的问题可以在上面提问

《提问的智慧》原文链接:How to Ask Questions The Smart Way (zh_CN)

很值得看

简单概括一下,

  • 提问之前:
    • 仔细读一读官方文档,检查教程是否遗漏步骤,看看FAQ有没有你遇到的问题
    • 谷歌搜索,多看论坛里的帖子,别人大概率也遇到过同样问题
    • 不要提出不该问的问题
  • 提问的时候
    • 描述运行环境(硬件配置、操作系统、软件版本号)
    • 描述所做的操作,最好是能复现问题的操作
    • 描述诊断测试/诊断步骤
    • 描述提问前是如何去研究和理解这个问题的。
    • 提供报错信息和log

关于ChatGPT

注册和使用需要非大陆+非港澳的手机号+ip地址

u1s1这玩意真挺不错,能解决一些模糊搜索的问题/总结内容帮助快速理解知识点,但是对于稍微复杂点的概念经常性出现描述错误。建议反复提问或用谷歌查证一下。