32位单片机好学习吗?
建议先看看单片机的汇编语言,了解单片机的一些指令、中断等,能够写出简单的汇编程序(如果你实在是不喜欢汇编,个人觉得你最起码要看懂别人写的最简单的带定时器的流水灯程序,不用记指令,照着指令表看的那种)后再学C语言。当然如果要用32位单片机的话,最好在c语言基础上,再学c++,不过这是后话了,先入门再说。有什么不懂的大家可以互相交流。
个人建议:如果你重来没有学过单片机的知识,也没有了解过,那么我觉得你应该从8位单片机开始学起,比较8位比较32位的要简单许多,并能通过8位单片机的学历来理解单片机的工作原理以及内部构造,虽然32位跟8位的有很多类似的地方,但是是存在明显的差别;所以先把理论基础弄扎实了,再学32位单片会容易很多,不然刚开始学就会遇到很多问题困难;当然如果你学习爱过8位得到单片机,那么现在学习32位单片会容易许多;
目前8位单片机在一般的电子产品中用的比较广泛,比较便宜嘛,够能也够用;常见的品牌有51系列:以intel MCS51为核心,很多公司都买了它的核心,生产自己的51单片机,主要有ATMEL公司(AT89S52等等),STC,ST都有生产。AVR系列:以ATMEL公司的ATmega16为代表。3、PIC系列:以MICROCHIP公司的PIC16F877为代表。还有台湾品牌:合泰,松翰等,国内也有很多品牌比如当前比较流行的GD系列等;8为单片机内部结构相对简单些,主要包含:存储器,串行口,并行口,定时器/计数器,中断等;
32单片机就相对复杂些;在电子产品中应用也比较广泛,功能稍微复杂些的控制大部分都在用;目前比较流行的品牌有,STM32系列,ARM系列,PIC32系列,AVR32系列,当然国内有GD32系列比其他国外品牌要便宜些;32位单片机内部集成的功能就比较多了,有IO口,定时器,ADC,DAC,串口,I2C,DMA等一系列的外设结构,基本上涵盖大部分常用的外设,用起来很方便功能很强大;
所以,建议你有基础就可以直接学32单片机,没基础就从8位的开始,熟悉了再转到32位单片机上,网上卖的各类开发板都有,都会配套许多教程及实例,学起来相对容易些,希望你能早日行动起来,开始学习。
不管是8位的单片机,还是32位的单片机,都是很容易学的。如果之前学过8位单片机,有8位单片机的基础,那么学习32位单片机就更加容易了。即使没有学过8位单片机,直接学习32位单片机也是可以的。在学习单片机时需要掌握好方法。建议如下:
1 尽快入手一块合适的开发板
单片机是一门需要动手的技术,不像理科类课程只看书就好,而是需要大量的动手练习。学习单片机包括单片机电路图的设计以及程序的设计,在学习的过程当中需要较多的硬件***的支持。而最好的方法就是入手一块单片机开发板。单片机开发板的核心一颗单片机,设计了常用的外设电路,可以方便初学者学习,并且配套了较为丰富的例程和资料,大大提高了学习效率。所以,入手一块开发板,跟着教程的步骤学习单片机是很有必要的。
2 从基本的GPIO口操作开始
先从最简单最基本的GPIO口的配置开始学习。单片机有众多的引脚,引脚和外设电路相连,通过控制单片机引脚的状态就能实现控制外设电路的目的。32单片机的GPIO口可以配置为输入或者输出。比如以灌电流的方式驱动LED时,需要将与LED相连的引脚配置为输出,并且将该引脚输出为低电平即可让LED点亮。与GPIO相关的外设电路有:流水灯、控制蜂鸣器发声、控制继电器动作、按键输入检测、驱动数码管电路等。先从这些最基本的例程开始学习。
3 熟悉单片机的片上***
单片机有很多片上***,数量操作各片上***可以实现很多复杂的功能。单片机常用的片上***有:定时器、中断、AD转换、PWM、UART、看门狗等。比如,单片机通过NTC热敏电阻***集环境温度时就会用到AD转换,将模拟量转化为数字量,就可以实现温度的***集,这在传感器行业非常常用。比如,用到RS485接口的通讯,就需要用到UART功能和RS485电平转换芯片连接。学习板的例程里都有各种***的例程。对着单片机的数据手册好好研究片上***是非常重要的。
4 多动手、勤参与项目
学习单片机的目的是为了能用单片机实现用户的需求、设计出符合要求的产品。所以,一定要多动手,如果有项目可以练手的话一定要积极的参与进来。要学习需求的提炼、技术方案的设计、芯片选型以及硬件原理和程序的设计。也许一两个项目下来,就能理解项目开发的流程。所以,参与项目是十分重要的。
不同型号、不同厂家的单片机都是相通的,学习方法都是一样的。如果确定要学习单片机,就要选定一个具体的型号去学习,开始学习起来了就感觉不到难了,反倒是一直在想不动手会把自己吓得很难。
以上就是这个问题的回答,感谢留言、评论、转发。更多电子设计、硬件设计、单片机等内容请关注本头条号:玩转嵌入式。感谢大家。
身为一个电子工程师来说,我使用32位的单片机(主要是STM32)已经有10年的时间了。不要纠结是8位单片机还是32位单片,位数对开发工程师无关痛痒,那一层的难题已经被编译器给处理了。学习的时候也走了很多弯路,现在我就说下我的想法。
初次学习的时候什么也不懂,遇上个问题就能卡半天,都是硬着头皮顶过来的。想当年建立个stm32的工程就花了差不多一周的时间,但是建51的工程就是分分钟的事啊,所以感觉起来stm32比51难不少。后来想想完全没有必须要学怎么建工程,做了不少无用功啊。因为这十年走来我再也没有建过工程,每次都是使用建好的工程模板。所以我认为初学的时候也就没必要学建工程了。可以直接拿个闪烁灯的工程进行修改操作。学习的时候也不用太扣字眼,比如说IO口的高低电平操作,只要会用了就行。程序界有句名言叫"不要反复造轮子",意思就是说别人造好的轮子可以直接拿来用,不要自己做重复的工作。等对芯片了解差不多,再深入的时候可以再去研究轮子是怎么造的。
学习的时候千万不要从头到尾的学,因为现在单片功能太多。学是学不完的,而且技术这东西你要是不用的话时间稍微一长久会忘掉。我觉得工作这10年,用到的功能连30%都不到。无非就是IO、UART、Timer、ADC、DMA等模块,其它通信IIC,SPI等全部用IO口模拟。而且很多驱动程序当时只是浏览了一遍,了解了一下大体功能,感觉有用就***下来了等用的时候直接***粘贴。有些别人提供好的驱动程序、例程等都可以直接拿来使用。能不自己敲代码就不要自己敲,要学会利用别人的程序。
学单片机就是学应用,能让他跑起来就OK,其它的不要纠结太多。把简单的学会了就有成就感,就越学越有劲,形成良性循环,成功就在眼前。