一、引言
关于工作室未来可能需要发展一些学习硬件的同学,在我本人接触一年多的硬件分享一下个人的学习路线,以及推荐的学习方式,希望能够帮助工作室的同学快速入门嵌入式,能够学习到一些硬件知识,在学习中也能不那么枯燥,做一些小的实物。
二、嵌入式学习的所需技能
1、C语言基础
学习C语言基础内容,具备一定编程能力。C语言的学习是一个持续性的过程,需要持之以恒的学习。学习C语言的途径有很多,无论是在b站还是在网上找到的一些资源都可以先学会简单的C语言的语法知识。前期的简单学习即可完成一些小的项目。
C语言编写嵌入式也有以下优势:
低级别控制:嵌入式系统通常需要对硬件资源进行直接控制,如寄存器、内存映射等。C语言提供了指针和位操作等低级别的编程功能,使得程序员能够更好地进行底层硬件控制,从而优化系统性能和资源利用。
跨平台支持:C语言的标准库几乎可以在任何嵌入式系统上运行,具有很强的跨平台特性。这意味着你可以在不同的嵌入式平台上复用相同的C代码,减少开发和维护的工作量。
资源效率:嵌入式系统通常资源有限,包括内存和处理器速度。C语言是一种相对轻量级的语言,不像高级语言那样消耗大量内存和处理器资源,因此能更好地适应嵌入式系统的资源限制。
高性能:C语言直接映射到机器指令,允许对程序进行高度优化,从而获得更好的执行速度。对于嵌入式系统,这点非常重要,因为有时候需要实时响应和高性能的处理。
可访问硬件特性:嵌入式系统需要直接与硬件进行交互,读取传感器数据、控制外设等。C语言提供了丰富的位操作、指针和结构体等功能,能够方便地访问和操作硬件特性。
大量资料和支持:C语言在嵌入式领域被广泛应用,有大量的资料、工具和社区支持。你可以很容易地找到相关的书籍、教程、示例代码和解决方案,有助于学习和解决实际问题。
2、单片机基础
学习嵌入式系统时学习单片机基础是非常重要的,因为单片机是嵌入式系统中最常见和基础的组成部分。以下是学习单片机基础的一些重要原因:
嵌入式系统常见平台:单片机是嵌入式系统最常见的处理器平台之一。它们在许多应用领域中得到广泛应用,如家电、汽车、工业控制、医疗设备等。掌握单片机基础为你在不同行业中参与嵌入式系统开发提供了必要的基础。
硬件编程理解:学习单片机基础可以让你更好地理解硬件编程和嵌入式系统的运作原理。通过单片机,你可以直接与硬件进行交互,学习如何读取和控制外设,设置时钟和定时器等。这对于开发复杂的嵌入式应用至关重要。
低成本开发:相比于一些高级嵌入式处理器平台,单片机是一种低成本的解决方案。学习单片机基础,你可以以较低的成本进行嵌入式系统的原型开发和测试,这对于学习和实验是非常有利的。
三、单片机学习路线
单片机的种类有很多,有简单易学习的,有复杂难使用的。在我们实际做项目中要考虑到使用成本,开发成本,体积,性能等参数再决定使用什么单片机,不同单片机设计的时候侧重点不同,所以会使用较多种类的单片机是很重要的,为了让大家能够快速入门,我推荐以下单片机学习路线。
1、ARDUNIO
可以将其定义为一种开源硬件和软件平台,用于创建嵌入式系统和物联网应用的单板微控制器。Arduino项目起源于2005年,由意大利的Arduino LLC创建。它的设计初衷是为了让爱好者、学生和创造者能够以简单易懂的方式快速构建各种互动项目。
Arduino板由一个单片机(通常是Atmel AVR系列)和一些输入输出引脚组成。这些引脚可用于连接各种外部电子元件,如传感器、执行器、通信模块等。通过编程,用户可以控制这些引脚的状态和交互,从而实现各种功能和应用。
以上是对arduino的介绍,在学习arduino时,我们通常使用c语言在arduino ide编译器中对arduino编程,学习一些专用的语句即可实现一些例如点亮一个led灯。学习这款单片机,可以快速实现一些项目的制作,提高学习者的学习兴趣。在学习arduino中可以快速配置例如GPIO,ADC,UART等等外设,减少了学习成本。
2、STM8
有很多人建议新手优先学习51单片机,但是这里我更推荐STM8单片机,虽然说51和STM8单片机都是8位机,但是都是为了后期学习STM32而做准备,而STM8单片机不仅能让学者学会8位机的使用,更能学会寄存器操作,学会操作寄存器从而可以帮助学者了解单片机的底层,在后期的使用开发中能更好的解决问题。学习他的途径我建议是B站上龙顺宇老师讲的课直接搜索即可。
3、STM32
STM32是STMicroelectronics(意法半导体)推出的一系列32位ARM Cortex-M处理器核心的微控制器。STM32系列广泛应用于各种嵌入