大家好,今天小编关注到一个比较有意思的话题,就是关于***r编程学习的问题,于是小编就整理了3个相关介绍***r编程学习的解答,让我们一起看看吧。
32位单片机好学习吗?
对于有一定的单片机基础,能够熟练掌握51/***r单片机开发的同学来说,32位单片机,是比较好学的,因为不涉及linux。
对于没有单片机开发基础,甚至连C语言基础和模拟电路基础很差的同学来说,那么32位单片机就十分难学。
为什么这么说呢?
32位单片机,目前比较常见的是STM32,cortex-M3内核就是32位的普通单片机,常见寄存器开发和固件库开发,需要使用C语言的结构体和指针。
51单片机的寄存器简单很少,外设也简单,简单的代码就能实现功能各种简单的功能,而32位单片机的外设会比51单片机更多,其配置过程更为繁琐,32位单片机的时钟配置,时钟树的使能,比如以太网,FSMC,SDIO等功能的使用。
身为一个电子工程师来说,我使用32位的单片机(主要是STM32)已经有10年的时间了。不要纠结是8位单片机还是32位单片,位数对开发工程师无关痛痒,那一层的难题已经被编译器给处理了。学习的时候也走了很多弯路,现在我就说下我的想法。
初次学习的时候什么也不懂,遇上个问题就能卡半天,都是硬着头皮顶过来的。想当年建立个stm32的工程就花了差不多一周的时间,但是建51的工程就是分分钟的事啊,所以感觉起来stm32比51难不少。后来想想完全没有必须要学怎么建工程,做了不少无用功啊。因为这十年走来我再也没有建过工程,每次都是使用建好的工程模板。所以我认为初学的时候也就没必要学建工程了。可以直接拿个闪烁灯的工程进行修改操作。学习的时候也不用太扣字眼,比如说IO口的高低电平操作,只要会用了就行。程序界有句名言叫"不要反复造轮子",意思就是说别人造好的轮子可以直接拿来用,不要自己做重复的工作。等对芯片了解差不多,再深入的时候可以再去研究轮子是怎么造的。
学习的时候千万不要从头到尾的学,因为现在单片功能太多。学是学不完的,而且技术这东西你要是不用的话时间稍微一长久会忘掉。我觉得工作这10年,用到的功能连30%都不到。无非就是IO、UART、Timer、ADC、DMA等模块,其它通信IIC,SPI等全部用IO口模拟。而且很多驱动程序当时只是浏览了一遍,了解了一下大体功能,感觉有用就***下来了等用的时候直接***粘贴。有些别人提供好的驱动程序、例程等都可以直接拿来使用。能不自己敲代码就不要自己敲,要学会利用别人的程序。
学单片机就是学应用,能让他跑起来就OK,其它的不要纠结太多。把简单的学会了就有成就感,就越学越有劲,形成良性循环,成功就在眼前。
个人建议:如果你重来没有学过单片机的知识,也没有了解过,那么我觉得你应该从8位单片机开始学起,比较8位比较32位的要简单许多,并能通过8位单片机的学历来理解单片机的工作原理以及内部构造,虽然32位跟8位的有很多类似的地方,但是是存在明显的差别;所以先把理论基础弄扎实了,再学32位单片会容易很多,不然刚开始学就会遇到很多问题困难;当然如果你学习爱过8位得到单片机,那么现在学习32位单片会容易许多;
目前8位单片机在一般的电子产品中用的比较广泛,比较便宜嘛,够能也够用;常见的品牌有51系列:以intel MCS51为核心,很多公司都买了它的核心,生产自己的51单片机,主要有ATMEL公司(AT89S52等等),STC,ST都有生产。***R系列:以ATMEL公司的ATmega16为代表。3、PIC系列:以MICROCHIP公司的PIC16F877为代表。还有台湾品牌:合泰,松翰等,国内也有很多品牌比如当前比较流行的GD系列等;8为单片机内部结构相对简单些,主要包含:存储器,串行口,并行口,定时器/计数器,中断等;
32单片机就相对复杂些;在电子产品中应用也比较广泛,功能稍微复杂些的控制系统大部分都在用;目前比较流行的品牌有,STM32系列,ARM系列,PIC32系列,***R32系列,当然国内有GD32系列比其他国外品牌要便宜些;32位单片机内部集成的功能就比较多了,有IO口,定时器,ADC,DAC,串口,I2C,DMA等一系列的外设结构,基本上涵盖大部分常用的外设,用起来很方便功能很强大;
所以,建议你有基础就可以直接学32单片机,没基础就从8位的开始,熟悉了再转到32位单片机上,网上卖的各类开发板都有,都会配套许多教程及实例,学起来相对容易些,希望你能早日行动起来,开始学习。
无论是学习8位单片机还是32位单片机,正确的学习方式和心态都很重要。关于你提的问题,我有几条建议:
1、学习单片机没想象的那么难,不要给自己太大的心理压力。如果觉得32位单片机入门难度比较大话,可以从8位的51单片机入手。把8位单片机的IO操作、定时器、中断、串口等功能理解清楚之后,再学习32位单片机就相对容易很多了。
2、虽然入门不难,想学精通也并不容易。学习单片机之前,最好能有一定的电路基础,能对常见元器件有基本的认识,能看懂简单的电路图。数电模电的基础知识对理解一些单片机的相关概念很有帮助。
3、学习单片机要理论与实践结合。初期可以买一套开发板,按照教程来理解示例程序的内容和编程风格,同时可以根据自己的想法修改程序,做一些有趣的小作品来获得成就感激励自己坚持下去。总之,学单片机不是为了做题,一定要多思考,多敲键盘。
4、学习单片机不是个一蹴而就的过程,不少人把《从入门到精通》学成了《从入门到放弃》。学习过程中难免遇到困难,不要轻言放弃,一步一个脚印地坚持下去才能有大的收获。
建议先看看单片机的汇编语言,了解单片机的一些指令、中断等,能够写出简单的汇编程序(如果你实在是不喜欢汇编,个人觉得你最起码要看懂别人写的最简单的带定时器的流水灯程序,不用记指令,照着指令表看的那种)后再学C语言。当然如果要用32位单片机的话,最好在c语言基础上,再学c++,不过这是后话了,先入门再说。有什么不懂的大家可以互相交流。
arm单片机和***r、51有什么区别?
简单的说,CPU构架不同,虽然都是8位的,但指令集不同,***R是用RISC的,哈佛结构的总线;51是用CISC,冯诺衣曼结构的总线。跟***R比,51是老掉牙的东西,内部***少,速度慢,但学习简单,是用的最多最精典的单片机。***R是后来才出来的,工艺上远超过51,内部***丰富,速度快。 并不是必需得学,但学了最好,学了51再学***R就快很多了,因为是同一个东西,就像学了一种编程语言一样,学了一门其它的就简单了,因为思路是一样的,只是格式写法不同而以。 单片机的品种多的跟米一样,看你用在什么上,我知道的常用的有***R,51,PIC等.
51单片机,stm32,arduino都是用什么语言进行编程的?
51单片机,STM32单片机用汇编或者C语言,现在基本都用C语言编程,Arduino有自己的编程环境,用户也是用C语言编程。
51单片机的编程
51单片机进入中国比较早,在早前用汇编编程比较多,我在上大学时也是学习的汇编编程,但是现在我用C语言编程,汇编已经不会了。51单片机比较常用的编程环境是Keil,现在Keil更新到Keil5了。如下是51单片机Keil的编程环境。
STM32单片机的编程
STM32单片机是意法半导体推出的高性价比、片上***丰富的32位单片机,这个系列的单片机我一直在用,都是用C语言进行编程,官方推出的库函数和HAL库都是用C语言编程的,虽然有一部分汇编共存。STM32单片机用Keil MDK进行编程。
Arduino的编程
Arduino是一款做的非常成功的开源硬件,并且有自己的开发环境,将底层的寄存器设置都进行了封装,用户不用自己配置寄存器,调用封装好的函数即可,可以在官方网站下载编程IDE。Arduino旨在培养用户的编程兴趣,简化了技术难度,很受欢迎。
在用户层面,现在C语言编程已经是主流,C语言的移植性和可读性比汇编语言有很大的优势,也有很多人在使用汇编编程,尤其是涉及到底层时。
以上就是这个问题的回答,感谢留言、评论、转发。
更多精彩内容请关注本[_a***_]号:玩转嵌入式。感谢大家。
简单的说,C语言。
具体一点:
51单片机:这是一款8位MCU(微控制器)平台,早期人们主要用其特有的51汇编语言编程。后来有了Keil C开发工具,开发人员逐渐转向使用C语言进行编程。注意这是一种不太标准的C方言。
STM32:这是使用32位ARM Cortex-M系列的MCU平台,所以其开发方式和标准ARM Cortex-M系列相通,可以使用Cortex-M系列汇编语言,也可以使用C语言。这一平台可以使用标准C语言进行开发。
Arduino:这是一个开源软硬件平台,包含范围较广,从8位的***R MCU到32位的ARM Cortex-M系列,直到Intel的x86都有。所以要看具体是哪个平台(Arduino Yun, Arduino Uno,等等)。但基本上都支持一套特制的C方言。
到此,以上就是小编对于***r编程学习的问题就介绍到这了,希望介绍关于***r编程学习的3点解答对大家有用。