0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何学好STM32、51单片机?​

ARM与嵌入式 来源:ARM与嵌入式 2024-01-02 12:35 次阅读

个人心得

单片机最好一开始就直接用C语言单片机编程,既省时间,学起来又容易,进步速度会很快。 先说说单片机,一般我们现在用的比较多的的STM32、51等单片机,它的资料比较多,市场也很大。

单片机这门课是一项非常重视动手实践的科目,不能总是看书,但是学习它首先必须得看书,因为从书中你需要大概了解一下,单片机的各个功能寄存器,而说明白点,我们使用单片机就是用软件去控制单片机的各个功能寄存器,再说明白点,就是控制单片机那些管脚的电平什么时候输出高,什么时候输出低。 由这些高低电平的变化来控制你的系统板,实现我们需要的各个功能。至于看书,只需大概了解单片机各管脚都是干什么的?能实现什么样的功能?第一次,第二次你可能看不明白,但这不要紧,因为还缺少实际的感观认识。 所以我总是说,学单片机看书看两三天的就够了,看小说你一天能看五六本,看单片机你两三天看两三遍就够了,可以不用仔细的看。 如果说学单片机你不实践那是不可能学会的,关于实践有两种方法你可以选择。

方法一: 买一块单片机的学习板,不要求功能太全的,对于初学者来说你买功能非常多的那种板子,上面有很多东西你这辈子都用不着,我建议有流水灯、数码管、独立键盘、矩阵键盘、AD或DA(原理一样)、液晶、蜂鸣器,这就差不多了。如果上面我提到的这些,你能熟练应用,那可以说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计电路,不断的积累经验。

方法二: 你身边如果有单片机方面的高手,向他求助,让他帮你搭个简单的最小系统板。 对于高手来说,做个单片机的最小系统板只需要一分钟的时间,而对于初学者可就难多了,因为只有对硬件了解了,才能熟练运用。而如果你身边没有这样的高手,又找不到可以帮助你的人,那我劝你最好是自己买上一块,毕竟自己有一块要方便的多,以后做单片机类的小实验时都能用得上,还省事。 有了单片机学习板之后你就要多练习,把学习板和电脑连好,打开调试软件坐在电脑前,先学会怎么用调试软件。从最简单的流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会发现单片机太好玩了。

兴趣驱动

电子类设计的人真的会上瘾。然后让数码管亮起来,这两项会了后,你已经不能自拔了,你已经开始考虑你这辈子要走哪一行了。兴趣是最好的老师,推荐文章:嵌入式开发经验分享,把学习当作一种兴趣。另外再引用论语中的一句话:

其为人也,发愤忘食,乐以忘忧,不知老之将至云尔。

论语·述而

大概意思就是说:他这个人啊,遇到想不明白的事情一定要研究清楚,为此可以忘记吃饭;乐在其中因而忘记了一切忧愁,甚至不知道衰老都要到来了呢,他就是如此而已。

在写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,或是问别人,当得到解答后你会记住一辈子的,知识必须用于现实生活中,解决实际问题,这样才能发挥它的作用。 我告诉你单片机一旦学会,永远不会忘了。 作为大学生,可以边学单片机边学C语言,C语言也挺简单,只是一门工具而已,我劝你最好学会,将来肯定用得着,要不你以后也得学,你一点汇编都不会根本无所谓,但你一点C语言都不会那你将来会吃苦头。 汇编写程序代码效率高,但相对难度较大,而且很罗嗦,尤其是遇到算法方面的问题时,根本是麻烦的不得了,现在单片机的主频在不断的提高,我们完全不需要那么高效率的代码,因为有高频率的时钟,单片机的ROM也在不断的提高,足够装得下你用C语言写的任何代码,C语言的资料又多又好找,将来可移植性非常好,只需要变一个IO口写个温度传感器的程序在哪里都能用,所以我劝大家用C语言。 总结上面,只要你有信心,做事能坚持到底,有不成功不放弃的强烈意志,那学个单片机来说就是件非常容易的事。

学习实践

单片机提高重在实践,想要学好单片机,软件编程必不可少。但是熟悉硬件对于学好单片机的也是非常重要的。 如何学习好硬件,动手实践是必不可少的。我们可以通过自己动手做一个自己的电子制作,通过完成它,以提高我的对一些芯片的了解和熟练运用它。这样我们就可以多一些了解芯片的结构。我相信,你完成了一个属于自己的电子制作,你的单片机水平就会有一个质的提高。 这就是我学习单片机的心得体会,希望给单片机的爱好者学好单片机有所帮助。 使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。

第一步:数字I/O的使用

使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。

第二步:定时器的使用

学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实 现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。 数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器PLC)也可以实现时序电路,但是只有单片机实现起来最简单,成本最低。定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础。

第三步:中断

单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。 要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。

中断功能使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等。 中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也可以监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。 以上三步学会,就相当于降龙十八掌武功,会了三掌了,可以勉强护身。

第四步:与PC机进行RS232通信

单片机都有USART接口,特别是MSP430系列中很多型号,都具有两个USART接口。USART接口不能直接与PC机的RS232接口连接,它们之间的逻辑电平不同,需要使用一个MAX3232芯片进行电平转换。 USART接口的使用是非常重要的,通过该接口,可以使单片机与PC机之间交换信息,虽然RS232通信并不先进,但是对于接口的学习是非常重要的。正确使用USART接口,需要学习通信协议,PC机的RS232接口编程等等知识。试想,单片机实验板上的数据显示在PC机监视器上,而PC机的键盘信号可以在单片机实验板上得到显示,将是多么有意思的事情啊!

第五步:学会A/D转换

MAP430单片机带有多通道12位A/D转换器,通过这些A/D转换器可以使单片机操作模拟量,显示和检测电压、电流等信号。学习时注意模拟地与数字地、参考电压、采样时间,转换速率,转换误差等概念。使用A/D转换功能的简单的例子是设计一个电压表。

第六步:学会PCI、I2C接口和液晶显示器接口

这些接口的使用可以使单片机更容易连接外部设备,在扩展单片机功能方面非常重要。

第七步:学会比较、捕捉、PWM功能

这些功能可以使单片机能够控制电机,检测转速信号,实现电机调速器等控制起功能。如果以上七步都学会,就可以设计一般的应用系统,相当于学会十招降龙十八掌,可以出手攻击了。

第八步:学习USB接口、TCP/IP接口、各种工业总线设计

学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计是非常重要的,因为这是当前产品开发的发展方向。 到此为止,还不到打遍天下无敌手的境界。但也算是单片机大牛了! 下文通过三个规划,介绍大神之路。

单片机的“大神之路”:三个规划

首先,单片机不是万能的,但没有单片机那是万万不能的。社会在这方面的需求越来越大。所以你有什么好担心的,怕自己没有用武之地吗?!怕自己的资薪没有或不高吗? 我自己在单片机和自己熟悉的行业上做了快10年了,自己的水平说牛不牛,说不牛也牛,该谦虚的时候也要谦虚学习,毕竟单片机总是一个系统工程,方方面面的东西不是自己都要熟悉和精确把握的。 单片机的工作成果那只是一个配件,正因为是“配件”,所以你需要提供相应的物理尺寸,单片机系统的散热,安装条件和安装方式等等情况,需要与你的上下游提供的环境配合好,而不是说我的单片机功能完成了就没我的事了,万事大吉了。

关于项目开展,推荐文章:梳理单片机学习方法、产品开发流程。 就仅对单片机需要实现的功能来说,如果你连功能都实现不了,那我还要你做什么——那只是基础工作。 其实,往往上下游提供的环境对你的设计就是一种考验,也有你需要变换N种方案才能比较好的实现的可能。很明显,这样的上下游环境,对你就是一种很好的资源,不过有些人可能就会视而不见,让你更加熟悉自己开发的东西,在这个行业中的使用和价值情况,对自己的今后发展都是一个很好的参考。不像C、C++的人员到了没有发挥平台的时候,就很郁闷了。相反,对单片机来说,我们可以为自己建立那样的可以供自己发挥和发展的平台。

就我的理解出发,单片机是相当“底层”和“硬件”的东西,没有太多高深的数据结构,也没有太多需要技巧的编程算法,只要我们从单片机执行的角度去理解和编程就行了。一个单片机就可以构成一个电子系统,也可以只构成一个智能节点。没有太多高深的东西需要去研究,因为我们只是单片机的应用者而已,别把自己提到“研究”的高度,我们只在“应用”的高度。

多熟悉单片机的上下游环境和条件,那不是很困难的事。我希望自己理解的这些东西,对后来者有点帮助,对新手能够带来点思考的东西,那就够了。

规划高度一: 当有一定的年龄和人力资源后,就可以自己出来做了,当个所谓的半个老板了。但当自己做老板说容易也容易,说不容易也不容易。当初我就是在这样的忐忑中,冲了进去。项目接的很多,周期对自己规定的也很短,往往都是白天在处理前一个或前面项目的维护工作,晚上回来工作到一、二点开发新项目。 累就不用说了,有时想想那是在拿自己的命来赚钱啊!老婆不太同意我出来自己干,我就对老婆说,可能我不能每个月准时的拿钱养家糊口,但我保证一年下来的平均每个月养家糊口的钱一定不会低于现在。 就这样,我开始了走自己的路了。吃苦受累我不怕,付出了没有收获我不怕。怕的就是过不了自己的心理关,还有所谓的某些情况下的“面子”。

至少我们应该用“最小的代价”来给自己当“学费”。也不怕你们笑话,我的“学费”交的也不少。一个成功的项目,不是你的功能有多好,有多强,而是你的开发成功为你的项目方带来了多少的利润收入,那才是真正的成功了,尽管你只赚了点儿开发费。 做项目,别为自己考虑太多,多换位思考一下。人家能信任你,把项目交给你做,你就多该从项目方的角度考虑——也许有时他们的要求有点过分,但所谓不知者不去怪罪了。

规划高度二: 做一个称职的软硬电子工程师吧。不用学太多,就学一些就行了,也不要去跟风,那个没有必要。有时,你就是去学了,如果没有相应对应的开发任务,学的也是皮毛,不过只要皮毛也可以了,当你真正需要的时候,再拿起来就会快很多,也算是一种储备吧。 但你至少要会一种,一种相对来说狭隘的系统吧?!不怕你笑话,我就只会51单片机。先说说我自己了,从事工业自动化方面的机床设备行业: 精通51、STM32等,了解其他的单片机,精通51汇编,精通CPLD,半精通C51(只用来做点人机界面工作),粗通FPGA(想精通自己做51IP核)。

粗通ARMDSP,粗通ARM和DSP的汇编,了解C编程。

精通三维造型软件SOLIDWORKS(可以为自己的线路板造型和机械设备造型)

粗通机加工大部分的工艺。

精通钣金和焊接。

熟悉数控设备、机床的实现解决方案。

对于每个人来说,学以致用,以前的我什么都想学,什么都用不好,当学的时候,却没有用的发挥平台,都是为学而学。但至少当你要用的时候,重新捡起来的时候,就会很快。就拿ARM来说吧,学的时候学的很努力,从其机理到实现,也做过好多的实验,可现在就是用的少就剩下了点概念的东西了。

所以没必要什么都要精通,只要一样,比如51单片机吧,从设计、投板、采购、焊接、一直到调试成成品等等一个系统下来,如果你思考了,如果你精通了,你还怕什么,不给高工资也要给你高年薪了,应该都能了解“老板一将难求”的道理了。

规划高度三: 做一个合格的新手电子工程师吧。对于新手,我的建议是:别上来就是一个什么五年十年规划之类的,我们都是普通人,那种规划不适合普通人。如果我们能将今后一年和二年的规划做好了,那你就已经很了不起了。

每天都是一个想法,每月都是一个变化,更别说每年了,只要你在努力,脚踏实地的做事。不要把自己搞的太忙碌了,给自己每天留半个小时想想“心事”了。做好一样,再发散开去,对于电子类的,什么ARM,DSP,51都是相通的。精通了一个体系,那么其他电子类的体系都是相通。怕就怕你什么都不通,都是半通。还半桶水的晃来晃去的,那就有点郁闷和悲哀了!

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 集成电路
    +关注

    关注

    5321

    文章

    10746

    浏览量

    353468
  • 发光二极管
    +关注

    关注

    13

    文章

    1138

    浏览量

    65692
  • 51单片机
    +关注

    关注

    269

    文章

    5649

    浏览量

    120824
  • 定时器
    +关注

    关注

    23

    文章

    3148

    浏览量

    112059
  • RS232
    +关注

    关注

    13

    文章

    702

    浏览量

    93481

原文标题:如何学好STM32、51单片机?​

文章出处:【微信号:ARM与嵌入式,微信公众号:ARM与嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    关于学好单片机需要哪些基础

    本人想学好单片机,但是再入手51单片机之前,我该把哪些基础知识掌握好?入手51单片机开发板后先做
    发表于 07-16 08:36

    如何学好单片机

    如何去学好单片机单片机我现在学到中断,定时,串口,但是都都学到半懂不懂,写的程序总是错的,需要各位高手的帮助,给我指点指点。谢谢
    发表于 11-28 17:12

    51单片机学好资料!!!!!!!

    51单片机学好资料!很不错的哈哈!!!
    发表于 01-04 21:53

    怎样学好单片机

    该怎么学好51单片机?求各位高见
    发表于 04-05 16:08

    如何学好stm32单片机

    如何学好stm32单片机,想说,为了学习单片机而去学习单片机的思路不对。你问,如何系统地入门学习STM3
    发表于 07-14 06:06

    如何学好stm32单片机

    如何学好stm32单片机,我想说,为了学习单片机而去学习单片机的思路不对。  你问,如何系统地入门学习s
    发表于 07-14 06:05

    51单片机和Arduino有什么区别? 精选资料分享

    泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。51更底层一些,但如果想玩机器人,智能车之类的就可以用arduino更方便些。不过现在的话51还算是主流点的,
    发表于 07-16 06:07

    如何学好单片机

    如何学好单片机?怎么实现单片机硬件的设计?
    发表于 10-11 06:18

    学好单片机必会的五张图

    单片机原理[一] 学好单片机必会的五张图前言一:51单片机的主要功能方框图二:51
    发表于 11-17 06:38

    怎样学好单片机

    怎样学好单片机很多想学单片机的人问我的第一句话就是怎样才能学好单片机?对于这个问题我今天就我自己是如何开始学
    发表于 11-23 07:58

    51单片机stm32单片机的具体区别

      ​大部分朋友可能都知道51单片机stm32单片机也知道一般入门会先学习51单片机在学习
    发表于 11-23 09:00

    stm3251单片机的区别

    stm3251单片机的区别 随着单片机的发展,市场上出现了很多种类和品牌的单片机,其中STM32
    发表于 11-20 13:18

    51单片机STM32单片机有哪些区别

    大部分朋友可能都知道51单片机stm32单片机也知道一般入门会先学习51单片机在学习
    发表于 08-13 17:32 17次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>和<b class='flag-5'>STM32</b><b class='flag-5'>单片机</b>有哪些区别

    单片机原理[一] 学好单片机必会的五张图

    单片机原理[一] 学好单片机必会的五张图前言一:51单片机的主要功能方框图二:51
    发表于 11-10 17:35 18次下载
    <b class='flag-5'>单片机</b>原理[一] <b class='flag-5'>学好</b><b class='flag-5'>单片机</b>必会的五张图

    全方位对比STM32单片机51单片机

    萌新初入单片机领域,常会遇到STM3251单片机两大种类,无法选择其一来提升技术,也不确定哪个单片机更适合后续技术进阶提升和发展,今天这篇
    发表于 03-02 14:18 2.7w次阅读
    全方位对比<b class='flag-5'>STM32</b><b class='flag-5'>单片机</b>和<b class='flag-5'>51</b><b class='flag-5'>单片机</b>