数码之家

 找回密码
 立即注册
搜索
查看: 2382|回复: 10

[C51] 单片机初学者,有什么好的书推荐吗

[复制链接]
发表于 2021-5-26 22:59:25 来自手机浏览器 | 显示全部楼层 |阅读模式
50家元
Arduino,stc,51这种编程有没有前辈推荐几本好书,或者学习方式

最佳答案

查看完整内容

C语言是基础,这不用说,随便找一本入门都可以,但是记住,一定不要看谭浩强的那本书,进阶书籍《C专家编程》、《C和指针》、《C陷阱与缺陷》等后面有精力再看,C语言最具有魅力、最最要的就是指针,不要求精通指针,但至少也要做到能比较熟练运用。 有了C语言基础就可以开始学习嵌入式,上面推荐的书可以一边学一边看,不要只看书,一定要动手!一定要动手做!一定要动手做!嵌入式入门我个人推荐51单片机。我知道Arduino很火, ...
发表于 2021-5-26 22:59:26 | 显示全部楼层
C语言是基础,这不用说,随便找一本入门都可以,但是记住,一定不要看谭浩强的那本书,进阶书籍《C专家编程》、《C和指针》、《C陷阱与缺陷》等后面有精力再看,C语言最具有魅力、最最要的就是指针,不要求精通指针,但至少也要做到能比较熟练运用。

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

51单片机个人推荐购买STC系列,STC是国产的,支持一下国产,而且最近芯片价格疯涨,原来一个STM32F103C8T6最贵不超过20,现在近百!STC的手册是中文的,不用发愁看不懂英文,客服也比较热情,如果你碰到的客服不理你,可能是因为你长得不够帅,我说的客服是STC官网上的客服(顺便说一下stc官网是www.gxwmcu.com和www.stcmcu.com,他们的官网很简陋,真的很简陋),不是淘宝客服,有的淘宝客服的水平很菜,问他们没用。重点来了:
购买51单片机一定不要买89C52!
购买51单片机一定不要买89C52!
购买51单片机一定不要买89C52!
购买51单片机一定不要买89C52!
购买51单片机一定不要买89C52!
这点非常重要!淘宝上如果你购买51单片机学习套件,几乎全部都是89C52,这款芯片入门确实不错,但是它太老了,目前大多数单片机都自带PWM、SPI、ADC、DAC等功能,89C52统统都没有!!如果你用89C52入门后,要继续学习PWM什么的,你就又需要购买带有PWM功能的单片机,浪费金钱啊!!!而且他的内存小、程序存储空间小,性能弱,价格也并不比新型单片机便宜太多,完全没必要购买。所以我再说一遍,哪怕淘宝客服吹的天花乱坠,
一定不要买89C52!
一定不要买89C52!
一定不要买89C52!
一定不要买89C52!
一定不要买89C52!
我都说10遍了,如果还买89C52你真的没救了。

STC单片机稍微老一点的型号我推荐STC15W4K系列,新的就用STC8系列。这几个系列单片机的外设丰富,我前面提到的PWM、SPI、ADC、DAC都有,而且它兼容3.3V电平和5V电平,你不需要考虑不同模块和单片机连接时电平不同的问题。STC15W4K系列有很多子型号,比如STC15W4K48S4,表明他有48K的程序存储空间,4个高速异步串口。具体参数自己上官网查阅数据手册。

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

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

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

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

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

等你把51单片机玩的比较熟之后,就去报名参加比赛或是做点项目之类的,比如立创上面经常有各类比赛,进一步提升你的能力。

学完51下一步就可以学习stm32了,stm32推荐正点原子,买个开发板,跟着他给的视频学就可以了,没什么好说的。还是那句话,最近芯片价格离谱,估计几年之内都降不下来,可以先买个STM32F103mini凑合一下,不过我还是建议你尝试一下STM32F4或STM32F7系列。

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

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

stm32的性能强于51,学stm32一定要学嵌入式操作系统,不管是FreeRTOS还是RT-Thread、TencentOS-Tiny等,随便选一个,尝试移植到stm32上玩玩(基本都移植好了,最多就是简单做点配置),学习一下内核源码,不求精通,至少了解一下上下文切换的原理什么的,有能力的再加上网络模块玩玩TCI/IP协议栈,还可以加上液晶屏玩玩GUI,最后有能力的话可以继续学习文件系统,定个小目标,搞明白FAT32文件系统。

学完stm32下一步就是嵌入式linux,只推荐树莓派,树莓派的生态是最好的,没有之一,其他的板子不管广告怎么吹都别买,别问为什么,都是泪。

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

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

这里推荐一些书籍
C专家编程
C和指针
C陷阱与缺陷
编程珠玑
密码传奇
编码的奥秘
圈圈教你玩usb
嵌入式操作系统基础ucos-II与Linux
时间触发嵌入式系统设计模式
FAT32_File_System_Specification(微软官方对于FAT32文件系统的定义,尝试看一下原版英文pdf)
数据重现 文件系统原理精解与数据恢复最佳实践(学习文件系统的好书!!真的很好!!)
嵌入式fat32文件系统设计与实现 基于振南znFAT(这本书也很好)

学无止境,我就“简单”说这么多吧!
加油!

打赏

参与人数 5家元 +80 收起 理由
广东七色桥 + 10 热心的人
飞向狙沙 + 20
shgzyx + 10 精彩回帖
兔包公 + 20 好家伙
200birds + 20

查看全部打赏

回复

使用道具 举报

头像被屏蔽
发表于 2021-5-26 23:10:16 | 显示全部楼层
B站教程,想学啥的都有,还说得比较通俗。
回复

使用道具 举报

发表于 2021-5-26 23:49:39 | 显示全部楼层
ifm 发表于 2021-5-26 23:36
C语言是基础,这不用说,随便找一本入门都可以,但是记住,一定不要看谭浩强的那本书,进阶书籍《C专家编程 ...

没错,官网就和山寨的一样离谱:lol:
STC8都支持usb了,还要啥15W啊:titter:
回复

使用道具 举报

发表于 2021-5-27 00:39:04 | 显示全部楼层
看你用途,DIY几个控制板什么的 arduino 就够了,上手快,不需要额外编程器。。。 开发产品看老板的要求。
回复

使用道具 举报

发表于 2021-5-27 06:13:35 | 显示全部楼层
购买Arduino,学习avr,可以使用官方的 Atmel Studio 来绕开Arduino的封装,直接控制单片机的寄存器等

推荐的原因是,Arduino是开源的,板子和资源十分丰富,价格便宜

一旦上手avr后,可以根据个人喜好玩Microchip 的PIC系列单片机
回复

使用道具 举报

发表于 2021-5-27 07:12:43 | 显示全部楼层
我的看法不要用 STC,
虽说是全中文 看着不会吃力,还有现成的代码可以抄,但很不利于学习.

建议先学习C基础.
直接玩 stm32 , stm8  之类.
学习资料多,官文也有不少翻译资料.
玩得久了,绕不过英文这道坎的,哪怕是用翻译工具.

自认为st的库做得是所有厂商中最良心的.
从库代码中看 底层代码 配合参考手册看寄存器对认识芯片也很有利.

价格嘛,如果只是从学习的角度, 6元一片的 stm32f103 涨到哪怕是60元一片的,也并非不可接受.
何况还有一大堆替代品.

回复

使用道具 举报

发表于 2021-5-27 07:17:07 | 显示全部楼层
指针是C 的精髓.
但是玩51 就不要玩指针了.

51的寻址太坑 了.
哪怕是 stm8 都有 24位的指针,
用起来很爽的.

回复

使用道具 举报

发表于 2021-11-17 11:59:50 | 显示全部楼层
先评估一下自己
1. 就是玩玩,可能学一阵子就不玩了,或者就只能业余做点小东西,Arduino,啥都能干,可玩的多,库多,胶水粘合党,思路奇葩党,全世界可以尿到一个壶里。
2. 觉得自己有底子,编程什么不在话下,硬件数字模拟通吃,不是野生技术学会有软硬件功底,stm32,esp32,riscv,一大堆高端玩意,但是精力消耗很多,痴迷的人来
3. 工作副产品,或者学了能量产产品,小家电之类的,51之类的吧,毕竟便宜大碗又能赚钱,如果攒够了资本可以雇个2类的人给你打工

回复

使用道具 举报

发表于 2022-5-8 19:42:26 | 显示全部楼层

实践证明很多设备不是用坏的
回复

使用道具 举报

发表于 2022-6-20 08:38:39 | 显示全部楼层
谭浩强的C语言 yyds
回复

使用道具 举报

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

本版积分规则

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

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-25 18:58 , Processed in 0.405600 second(s), 14 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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