数码之家

 找回密码
 立即注册
搜索
查看: 3181|回复: 37

[超新手求教]如何开始自学单片机

[复制链接]
发表于 2019-9-12 15:19:30 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
不是相关专业,暂暂新的新手,该从哪开始学起呢?
提出这么白的问题,真是非常对不住。。。
发表于 2019-9-12 16:00:53 | 显示全部楼层
想想自己要用单片机做什么,决定一下学哪个单片机,然后尽量别买成品开发板,买核心板加各种模块,搭积木式的学习。可以从51开始,或者arduino之类的,也可以直接上ARM。选好之后,先看看基础的语法,然后就开始搭积木吧。以需求为导向,玩着才有意思。如果想从事这方面工作,我感觉要从基础开始学,把基础打扎实了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-12 16:04:29 | 显示全部楼层
lzh_23 发表于 2019-9-12 16:00
想想自己要用单片机做什么,决定一下学哪个单片机,然后尽量别买成品开发板,买核心板加各种模块,搭积木式 ...

非常感谢大佬回复
倒不是想从事这方面工作,只是实验有时候需要做一些交互型小装置,就想学下单片机。因为我是对这方面一窍不通,可能还是需要从基础开始学。。。
不过,基础的话,都需要什么勒?
回复 支持 反对

使用道具 举报

发表于 2019-9-12 16:08:46 | 显示全部楼层
单片机入门还是挺简单的,但是由于涉及硬件和软件的知识,精通还是比较难的
可以从一些入门的教材开始看
比如:单片机那些事儿
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-12 16:10:59 | 显示全部楼层
monkey125 发表于 2019-9-12 16:08
单片机入门还是挺简单的,但是由于涉及硬件和软件的知识,精通还是比较难的
可以从一些入门的教材开始看
比 ...

好的,这就找来看看去。谢谢大佬:tongue:
回复 支持 反对

使用道具 举报

发表于 2019-9-12 16:18:30 | 显示全部楼层
51一步一步走,想快速上手做项目就用arduino,但是学不到太多东西,
回复 支持 反对

使用道具 举报

发表于 2019-9-12 16:18:51 | 显示全部楼层
有软硬件基础吗,没有的话还是推荐stc入门吧,虽然很想推荐stm32,不过门槛稍高,很容易被劝退
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-12 16:24:20 | 显示全部楼层
飞向狙沙 发表于 2019-9-12 16:18
有软硬件基础吗,没有的话还是推荐stc入门吧,虽然很想推荐stm32,不过门槛稍高,很容易被劝退 ...

完全没基础。。。连这些缩写都完全不知道是什么的程度
回复 支持 反对

使用道具 举报

发表于 2019-9-12 16:55:26 | 显示全部楼层
minnaloushe 发表于 2019-9-12 16:24
完全没基础。。。连这些缩写都完全不知道是什么的程度

可以看看郭天祥的十天学会单片机,大概对建项目和寄存器有个概念了,再选单片机,可以买开发板也可以买核心板,或者直接买单片机自己焊接最小系统,个人推荐核心板和最小系统,省钱、省心,开发板的io复用容易弄得晕头转向的,然后就是单片机电亮led,亮灭亮灭:lol:
如果买核心板或者最小系统的话可以附带点外设模块,按键模块、数码管、温度传感器。。。很多,随心吧,看对哪个感兴趣。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-12 17:04:58 | 显示全部楼层
飞向狙沙 发表于 2019-9-12 16:55
可以看看郭天祥的十天学会单片机,大概对建项目和寄存器有个概念了,再选单片机,可以买开发板也可以买核 ...

了解了 感谢大佬指点!
回复 支持 反对

使用道具 举报

发表于 2019-9-12 17:53:20 | 显示全部楼层
minnaloushe 发表于 2019-9-12 16:04
非常感谢大佬回复
倒不是想从事这方面工作,只是实验有时候需要做一些交互型小装置,就想学下单片机。因 ...

我也不是大佬,我虽然不是新手,但和新手差不多,刚上大学时51入的门,这将近十年里,也没做几个东西,每次玩起来都要重新复习。

我学的是51,你如果也先玩51的话,学点C语言就可以开始玩了,认识几个关键词,几个常用的语句、循环、判断之类的就可以了,以后慢慢学其他的。楼上几位说的那个郭天祥的教程,可以看看,我当时就是看的那个。
回复 支持 反对

使用道具 举报

发表于 2019-9-12 18:10:30 | 显示全部楼层
你可以先去杜洋工作室看看,开发板的话金沙滩工作室的也不错
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-12 18:32:05 | 显示全部楼层
lzh_23 发表于 2019-9-12 17:53
我也不是大佬,我虽然不是新手,但和新手差不多,刚上大学时51入的门,这将近十年里,也没做几个东西,每 ...

了解了谢谢!:tongue:
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-12 18:32:28 | 显示全部楼层
摸心拿肝 发表于 2019-9-12 18:10
你可以先去杜洋工作室看看,开发板的话金沙滩工作室的也不错

OK,我去看看先。非常感谢!
回复 支持 反对

使用道具 举报

发表于 2019-9-12 18:33:01 来自手机浏览器 | 显示全部楼层
从C语言开始吧…如果说你没有学过C语言…
回复 支持 反对

使用道具 举报

发表于 2019-9-12 19:28:55 | 显示全部楼层
arduino 是个不错的开始,完全不需要硬件基础,先能实现一些简单的功能,再去研究原理和基础
回复 支持 反对

使用道具 举报

发表于 2019-9-12 19:45:55 | 显示全部楼层
本帖最后由 ifm 于 2019-9-12 20:14 编辑

自我介绍一下,我是个996程序员,现在从事linux驱动开发工作,大学计算机专业。


C语言是基础,这不用说,只要不是谭浩强的书,随便选一本教材入门C语言都行,这些教材比较多,我也不太好推荐,一般大学里用的C语言教材就行,除此之外《C专家编程》、《C和指针》、《C陷阱与缺陷》是推荐看的书籍,可以进一步提升,C语言最具有魅力、最最要的就是指针,不要求精通指针,但至少也要做到能比较熟练运用。


有了C语言基础就可以开始学习嵌入式,上面推荐的书可以一边学一边看,不要只看书,一定要动手!一定要动手做!一定要动手做!嵌入式入门我个人推荐51单片机。我知道Arduino很火,而且有非常多的开源代码,但是它把底层的东西全部封装好了,不利于学习。STM32比51复杂太多了,入门有点困难,也不推荐。


51单片机个人推荐购买STC系列,STC是国产的,支持一下国产,而且他的手册是中文的,不用发愁看不懂英文,客服也比较热情,如果你碰到的客服不理你,可能是因为你长得不够帅,我说的客服是STC官网上的客服(顺便说一下stc官网是www.gxwmcu.com和[url=http://www.stcmcu.com]www.stcmcu.com[/url],他们的官网很简陋,真的很简陋),不是淘宝客服,有的淘宝客服的水平很菜,问他们没用。重点来了:
购买51单片机一定不要买89C52!
购买51单片机一定不要买89C52!

购买51单片机一定不要买89C52!


这点比较重要!淘宝上如果你购买51单片机学习套件,几乎全部都是89C52,这款芯片入门确实不错,但是它太老了,目前大多数单片机都自带PWM、SPI、ADC、DAC等功能,89C52统统都没有!!如果你用89C52入门后,想要用ADC什么的,你就又需要购买额外的ADC芯片,浪费金钱啊!!!而且他的内存小、程序存储空间小,性能弱,价格也并不比新型单片机便宜太多,完全没必要购买。所以我再说一遍,哪怕吹的天花乱坠,

STC单片机目前我推荐STC15W4K系列,最近新出的STC8系列也不错。15W4K系列单片机的外设丰富,我前面提到的PWM、SPI、ADC、DAC都有,而且它兼容3.3V电平和5V电平,你不需要考虑不同模块和单片机连接时电平不同的问题,而且有内置晶振,搭建最小系统板甚至不需要任何额外元件,只要电源就行,(当然还是建议加上开关,滤波电容等基本元件)。STC15W4K系列有很多子型号,比如STC15W4K48S4,表明他有48K的程序存储空间,4个高速异步串口。具体参数自己上官网查阅数据手册。


学习的视频我推荐杜洋的系列视频,这是官网[size=1.067]www.doyoung.net,你们自行查看,我就不多说了。单片机可以直接在杜洋的淘宝店购买,和视频是配套的,学习起来也比较容易,他的客服也很热情。当然你也可以在淘宝的其他店铺购买。



如果你在淘宝的其他店铺购买单片机,他一般会送你一大堆所谓的“超值资料”,我的建议是,除了他送的一些电子书比如《[size=1.067]新概念51单片机C语言教程》、《C语言参考手册》、芯片的数据手册之类的、还有一些软件比如字符取模工具、定时器计算器之类的可以留下,其他的东西,包括他给的例程、源代码什么都可以删掉,我个人在学习过程中基本看过淘宝给的源代码,这些源代码大多是从网上随便收集来的,没什么意思,STC的芯片手册里有官方代码,何必要看这些非官方的东西呢?


淘宝给的资料里一般还有开发工具、串口调试工具,他们给的这些软件有可能都是古董级别的软件了,计算机技术现在是日新月异,现在都9012年了,如果还用古董级的软件真的没意思。能升级的软件尽量升级到最新版。


[size=1.067]把杜洋的视频全部学习完以后,恭喜你,你已经成功打开了新世界的大门,先别急着去玩stm32,看了杜洋的做的电子钟、温度什么的你有没有心动?自己也试着做一个呗,如果你不知道能做什么,我来给你列出几个题目:1602液晶屏的电子钟、12864液晶屏电子钟、数码管的电子钟、点阵屏的电子钟(电子钟做一个就行了,做这么多没意思,你也可以给电子钟加上温度、湿度、闹钟、定时器等功能)、PWM控制的调光台灯、LED摇摇棒、电子水平仪、自动浇花装置、自动控温风扇、红外测距仪、液晶屏播放bad apple(经典项目!!)、简易示波器、简易逻辑分析仪等。当然有一些题目需要一定的基础电子知识,所以不要只看杜洋51单片机入门视频啊,把他的入门电子制作的视频也看一看嘛。


当然他的部分视频是收费,如果你觉得这个视频有点小贵,你可以发挥百度强大的搜索功能,具体怎么操作我就不说了,大家都懂。

学完51想继续深入可以学习stm32,stm32推荐正点原子,买个开发板,跟着他给的视频学就可以了,没什么好说的。如果手头比较紧,那就买个STM32F103mini,不过我还是建议你尝试一下STM32F4或STM32F7系列。
[size=1.067]

[size=1.067]这里我谈一谈个人经验。


stm32可以用使用串口下载程序,但是串口下载太麻烦了,强烈建议!强烈建议!强烈建议!强烈建议!强烈建议!强烈建议!强烈建议!强烈建议!强烈建议!强烈建议!买个J-link或ST-link,正品买不起就买山寨的,安装驱动配置完成后,你可以直接在keil MDK中下载程序,很方便的有木有!而且可以调试的有木有!不用像以前那样再打开串口,加载hex文件,下载,太麻烦了!!!


stm32的寄存器数量远远多于51单片机,像51那样直接控制寄存器的方式来配置stm32真的真的真的很累,stm32的寄存器了解一下就行了,不建议手动配置寄存器。当别人都开始写软件了,你还在查寄存器手册,别人软件写的差不多了,你还才把寄存器配好,别人开始调试软件了,你发现一个寄存器配置错了,别人都快做完了,你终于把寄存器配置好了。所以建议你学习stm32的HAL,也就是Hardware Abstraction Layer硬件抽象层,有了HAL可以节省大量的时间和精力,让你专心于软件开发。


[size=1.067]stm32的性能强于51,学stm32一定要学嵌入式操作系统,不管是ucos还是RT-Thread,尝试移植到stm32上玩玩,有能力的再加上网络模块玩玩TCI/IP协议栈,还可以加上液晶屏玩玩GUI,最后不要忘了学习文件系统,最起码要搞明白FAT32文件系统。


学完stm32下一步就是嵌入式linux,关于嵌入式linux这个坑很大……一言难尽……


学习嵌入式肯定要和电路打交道,所以数电、模电一定要学好。除此之外还要能看懂电路图,会画电路图,会焊接电路。


还有英语要学好,几乎所有芯片的手册都是英文的,你们看到的中文手册大多是翻译过来的,很少有官方的中文手册。网上一些翻译成中文的手册是有误的,能看英文手册就看英文手册,多学点英语也不吃亏,对吧。


这里推荐一些书籍
C专家编程
C和指针
C陷阱与缺陷

编程珠玑
密码传奇
编码的奥秘

圈圈教你玩usb

嵌入式操作系统基础ucos-II与Linux

时间触发嵌入式系统设计模式

FAT32_File_System_Specification(微软官方对于FAT32文件系统的定义,尝试看一下原版英文pdf)

数据重现 文件系统原理精解与数据恢复最佳实践(学习文件系统的好书!!真的很好!!)
嵌入式fat32文件系统设计与实现 基于振南znFAT(这本书也很好)

altium designer使用教程 廖继武
模电、数电、电路基础把教材学会就够了

分享一些我做的东西,都是发在论坛里的

[C51]历时3个月打造属于我自己的GPS(开源啦!!)
http://bbs.mydigit.cn/read.php?tid=1931926

[电源]从原理开始教你制作电子负载
http://bbs.mydigit.cn/read.php?tid=1883818

从零开始教你驱动SD卡
http://bbs.mydigit.cn/read.php?tid=1774114

教大家如何点亮建行网银盾的液晶屏(附代码指令)
http://bbs.mydigit.cn/read.php?tid=1295119

教大家如何点亮建行网银盾的液晶屏2.0(以代码为主)
http://bbs.mydigit.cn/read.php?tid=1448258

[照明]PWM调光台灯
http://bbs.mydigit.cn/read.php?tid=1169565

[C51]做一个2408电子钟,时钟用8563,温度用lm75a
http://bbs.mydigit.cn/read.php?tid=1010284

[C51][原创]直接上硬货,ws2812驱动深度分析
http://bbs.mydigit.cn/read.php?tid=2622343

有问题欢迎私信,另外996真的很累,不一定有时间及时回复。





打赏

参与人数 1家元 +5 收起 理由
清池 + 5 膜拜大神,我会C会linux,建议从哪里开始学.

查看全部打赏

回复 支持 2 反对 0

使用道具 举报

发表于 2019-9-12 19:56:00 | 显示全部楼层
51 、 寄存器、。。。。各种原理。。。。。。。电路、各种元件
回复 支持 反对

使用道具 举报

发表于 2019-9-12 22:48:27 来自手机浏览器 | 显示全部楼层
ifm 发表于 2019-9-12 19:45
自我介绍一下,我是个996程序员,现在从事linux驱动开发工作,大学计算机专业。



大佬啊!佩服佩服…用心了…其实我觉得这种文章都够精华了…不过我是半路出家直接上stm8的…15系列的单片机有那么好吗?w跟k系列有啥区别?
最后大佬能抽空搞点类似的文章么?对于我等菜鸟很有用啊……我业余爱好者工作跟这些东西八杆子打不着,期待的目标就是能移植一些简单的程序,做几个时钟,温湿度计,最后bad apple是我心中的圣地啊,虽然我现在还撸不出来…工作太忙了都没时间开电脑了…
回复 支持 反对

使用道具 举报

发表于 2019-9-12 23:12:39 | 显示全部楼层
ifm 发表于 2019-9-12 19:45
自我介绍一下,我是个996程序员,现在从事linux驱动开发工作,大学计算机专业。

大神好,向你致敬!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-7 08:10 , Processed in 0.124800 second(s), 9 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表