首先你要有一个开发板,如果你是刚入门单片机领域的,建议从视频开始学习。书籍方面最起码要有一本 C 语言书籍,方便查阅 C 语言知识点。
刚开始学习的时候注意以视频为主,反复看都看不懂的知识点可以看书,还是不懂的话就要上网搜寻答案了(当然如果身边有前辈的话也可以请教,这是最好、最直接的方式)。多方面结合学习效果更好。
说说我的学习经历吧。我是大一的时候在实验室接触到单片机的,目前已经毕业了,学习时间也不短了。一直以来在别人学习各种编程语言的时候,我都始终坚持只学 C 语言,只用 C 语言,虽然后期为了更好的理解 C 语言学了点汇编知识,但也只是皮毛罢了,所以我最擅长的还是 C 语言。
C 语言学习最重要的是多练,多看。多练就是需要通过一些小的项目去运用你所学的知识,这样你才能更深刻的理解。而对于 C 语言语法问题,这种是最简单和基础的错误,既不要太重视也别轻视,平常心对待就行了,因为你写的语法错误会有编译器帮你检查出来的,一旦出现警告和错误,一定要看输出信息,通过信息来判读你的错误原因。一定要注意看懂英文,理解它表达的中文意思,别说自己英文水平太烂,看不懂,多看几次,多用 Google 翻译一下就记住了,熟能生巧。如果说你知道了表达的错误意思,但还是不知道怎么解决问题,那么就把这条出错信息复制一下,然后粘贴到网上搜一下就知道了,你要知道,你碰到的绝大多数问题别人都可能碰到过,也可能解决了。所以要充分利用网上的资源学习。多看,就是要多看别人的代码,这样才能发现自己不足的地方,并且可以学习别人优秀的地方。STM32 学习中库函数会是很好的学习资源,这个代码写的非常规范,如果感兴趣的话可以多看看库函数的实现,这对你的 C 语言学习会有非常大的帮助。
然后是单片机的学习,单片机软件开发基本上都是基于 C 语言的,所以你的 C 语言基础一定要扎实,这样你的单片机学习之路才能走的更顺畅。单片机学习无非就是各个模块的使用,所以学习的过程就是按照视频教程一个模块一个模块的学习,虽然辛苦,但你会发现自己每天都在进步,会有很大的成就感,这种成就感不是课堂学习能比的。
STM32 单片机资料现在做的比较好的有正点原子和安富莱这几家,它们的入门资源也很丰富,可以好好利用。不过我当初学 STM32 时看的是 刘凯老师的视频,也是相当不错入门视频教程了。