suncat0504 发表于 2022-2-18 08:37

新手想玩硬件,买单片机还是树莓派好?

本帖最后由 suncat0504 于 2022-2-18 08:45 编辑

#有奖活动# #申请原创#    @21小跑堂
       作为电子爱好初学者而言,现在可供学习的电子技术太多。没办法,电子技术的发展,和其它行业一样,专业方向越来越多,越来越精细。以往像51单片机这样的8位单片机打天下的时代,早过去了,今天你耳朵里充斥的单片机,已经是以32位的为主了。程序开发上,也从针对性的专用程序,扩展到基于操作系统上的二次开发。为了方便爱好者学习,处理器的型号和开发板也大量出现,还提供丰富的例程。对初学者而言,是不是有眼花缭乱的感觉?       那么,对于一个新手而言,是从单片机开始学习起,还是树莓派学习起呢?这个我不好说。因为这个“新手”没说指的是哪种新手。如果是没有一点程序开发基础的,那毫无疑问,还是从单片机学起吧。如果是有丰富的linux程序开发经验的,想学习硬件开发的,那可能直接学习树莓派更好一些。为啥这么说呢(我的一家之言哈)?让我们花点功夫掰扯掰扯哈。单片机,通常指的是诸如51单片机,PIC单片机之类的单片机,爱好者们可以直接从市场上买回来一片双列直插(DIP封装)的单片机,直接在面包板上就能搭建起来硬件的测试环境。即便是现成的开发板也不是很贵,也很容易买得到。一般裸片的单片机,只要有通用编程器,就可实现擦写、编程。有开发板的,开发板可以直接在线编程、测试。
图1:单片机
图2:单片机开发板
图3:编程器       那么树莓派是什么东西呢?它是一种卡片式电脑。看清楚没?是一种电脑,有操作系统的!是一种微型电脑主板,有的树莓派配有USB接口和以太网接口,可连接键盘、鼠标和网线、视频输出接口,具备计算机的基本功能。能执行如电子表格、文字处理、玩游戏、播放高清视频等诸多功能应用。
图4:树莓派开发板       看清楚了吧,区别是不是很大?单片机及面向单片机的开发板,通常是有针对性的用于控制类的开发,你只要会汇编或者C,照着例程学习就行。当然如果熟悉单片机的构成原理那是最好了,反正单片机内部也没有多少寄存器,也不是很复杂,稍微花点功夫就能搞懂。可树莓派就不一样了,这个通常是已经注入了操作系统的,一般是linux。要想在树莓派上进行开发,那可是二次开发哟(我感觉,大多数的树莓派爱好者,应该不是搞底层系统开发的吧)。没有linux开发基础,想当然地以为像开发单片机程序那样开发树莓派,肯定是不行地。我的感觉,学习树莓派,更像是学习linux程序开发。如果想以树莓派控制其他有接口协议的硬件设备(比如蓝牙模块),恐怕linux底层驱动发开也跑不了。谈及软件开发,对于搞了20几年软件开发的我,头疼的很,感觉就是一句话:永远学不完,一直都在学习中!单片机开发就简单了,学好汇编(这个已经不常用了)和C就能一直玩下去。可以说,学习单片机硬件开发就是一个小坑,而软件开发就是一个深渊。这么说,可别吓着您。树莓派虽然比较难,但架不住学啊,谁也不是天生就会,对吧?再者说了,人的一生中,有比活着这件事儿更难的么?这么难的事儿,我们都办到了,其它的还算事儿吗?!       归纳起来,单片机开发,底层控制多一些;树莓派开发,应用层面多一些。不管是单片机,还是树莓派,看您需要,用到哪个就学哪个!不会?没关系啊,撸胳膊、挽袖子、闷头,边学边干!

mxkw0514 发表于 2022-2-18 16:27

为什么说软件开发永远也学不完呢?

suncat0504 发表于 2022-2-18 20:15

本帖最后由 suncat0504 于 2022-2-18 20:23 编辑

@huarana 我不知道您是从事什么工作的,我呢,做个20多年的软件开发。看到过有些开发语言在不断进化,也有些语言消失,也有新语言产生。不断进化的语言,一定是有原因的,比如增加新的概念和处理方式,比如增加新的处理机能。web开发上,早期的静态网页,到后来的动态网页+数据库支持,从HTML1到HTML5,从网页的单个文件,到增加样式表、动态语言支持等。因为概念不一样,导致编程风格发生了变化。所有这些变化,要求程序员必须去学习、去适应。单单说操作系统对开发语言的影响吧,如果你以前用过quick basic(过程语言),而不熟悉VB.net,虽然代码很像,那你恐怕是没法用quick basic实现窗体开发,对吧?语言的进化也好、升级也罢,如果不能不断学习,很快就会被淘汰,无需置疑。有时间的话,你去看看Spring的变化有多少版本了,概念又有哪些变化?可能对我说的理解起来,更直观一些。
硬件开发上,无论是51单片机,还是更高级的32位单片机,都是通过寄存器控制,实现对管脚操作,在半导体硬件构成上,没有本质区别(纯粹的数据处理方面,应算是纯软件的范畴了)。即便FPGA、DSP,都是一样用电阻、电容、门电路,这是半导体电路的共同点。虽然开发语言有汇编、C、Pascal(当然也需要花时间学习啦),但通用性比较大,选择合适的编译器,程序基本上没有大的区别,不需要专门花太多时间去重新学习。即便芯片的架构不一样,在对IO口操作、对寄存器操作,使用相同的C语言实现,绝对没问题。那些不同的东西,编译器和库函数会为你解决,不需要操心。

chenqianqian 发表于 2022-2-19 13:53

玩硬件和这个没关系

两只袜子 发表于 2022-2-21 11:43

学无止境,学海无边,哈哈

tail066 发表于 2022-2-22 14:38

电子线路入手

tpgf 发表于 2022-3-3 08:08

那肯定要选单片机了

weifeng90 发表于 2022-3-3 08:10

你应该问玩软件

观海 发表于 2022-3-3 08:16

树莓派是硬件吗

guanjiaer 发表于 2022-3-3 08:23

还是先看看模拟电路吧

heimaojingzhang 发表于 2022-3-3 08:35

新手应该先了解一下数字电路基础知识

keaibukelian 发表于 2022-3-3 08:42

树莓派是锻炼软件的吧

labasi 发表于 2022-3-3 08:52

入门还是用简单的吧

primojones 发表于 2022-3-5 21:53

单片机常用一些,树莓派应用比较少。

bestwell 发表于 2022-3-5 22:06

这个还是玩单片机的好。

htmlme 发表于 2022-3-5 22:22

单片机开发吧

primojones 发表于 2022-3-5 23:02

入门都是单片机。

mikewalpole 发表于 2022-3-5 23:38

树莓派开发起来比较难吧   

suncat0504 发表于 2022-3-6 10:20

mikewalpole 发表于 2022-3-5 23:38
树莓派开发起来比较难吧

是啊。需要了解linux系统知识。因为一般要通过IO和外部设备交换数据,所以还得学习设备驱动程序开发。

guijial511 发表于 2022-3-6 10:50

你这是想玩软件吧
页: [1] 2 3
查看完整版本: 新手想玩硬件,买单片机还是树莓派好?