人人范文网 范文大全

单片机学习经验分享整理

发布时间:2020-03-03 07:11:44 来源:范文大全 收藏本文 下载本文 手机版

1、什么是单片机?其实我入学之前根本都接触过这个,相信大多数人都是这么过来的。现在接触过这么多,我能明白些。单片机通俗讲就是一个微处理器加上各种外设、接口等等完成你预定的任务。这个在电子通信、自动化、机械、仪器测量、计算机领域用的相当广泛,工科嘛或多或少都会接触下这个。

2、怎么学习单片机(大神一般都说是“玩”,哈哈,这个逼我装不来)?单片机在我看来主要是两部分组成:硬件&软件。那么我们就要从这两个方面入手,逐个击破。a、软件离不开c和linux,而初学者大多都是在用c。c其实在单片机领域要学习的不是很深,仔细看看例程的代码就知道,就是数组、结构体、链表、移位、指针等等。更深的二维指针和树可能就用的不多,所以大一还是大二的C语言基础这门课要多用点心。b、硬件,硬件上其实要学的东西比较多,而且动手画板子、焊电路都比较常见。干活可不分男女,我见过很多菇凉焊接的技术那叫一个好。硬件学习的话,最好看看电子器件介绍这些书,有些理论基础。然后单片机上最基本的接口都要会用,最简单的就是串口这些了。其次在你做项目的过程中,碰到什么再学什么,这是比较好的。

看几张小图片

下面谈谈单片机具体的型号

1、单片机的分类:单片机之间可能最明显的区别就是“主频”了,低的有12/24MHz,再高点有48/60M,甚至像STM32的F4就能到几百M了,这就是高速板了。单片机还有一种分类方法是根据单片机系统能够处理的位数(这个说法其实不准确,因为所有处理器归根到底只能处理2位:0和1。但操作起来就是后面的几种了),最常见分别是:8/16/32,。像大家最常见的51单片机知道是几位嘛?没错,就是8位,所以它是单片机的入门。

2、单片机的型号:大家可以先看看我学习单片机的历程:80c51(准确是c52)——>MSP430(具体学了三个小系列)——>STM32(这可是ARM的重头戏)和TI的Tiva。发现了没有?这几个单片机恰恰是上述3种位数的对应,他们分别是8/16/32中常见的。

3、大家可别以为这就是单片机的全貌了,其实单片机的型号是成千上万的,我一个人都说不完。比如我大学期间还接触过AVR、瑞萨、Arduino、TI的DSP、甚至是FPGA等等。关于这些我在帖子结尾还有几句想跟大家说的(别忘了),现在就看下去吧。

学习经历分享----首先是51单片机

有句老话,谈单片机必谈51,现在看来确实不假,因为群里关于51的帖子最多。这是好事也不是好事。51现在在成品市场上其实不多了,但恰恰我们需要学习它,因为基础最重要。理解了51,你就能理解单片机到底是怎样运行的,你就能去操纵它去玩弄它。学习51的过程中,可能还有接触并学习很多外设和接口。这些打基础的过程,作用在你后续学习更复杂的单片机的时候就能显现了。

下面看看我是怎样学习51的、(有些事我早已忘记,但我现在还记得)那是大一下学期的时候,院里科协鼓励大家去科创,我觉得我们专业理论重要,但动手能力也不能少就去了。现在想来不知道是入坑了还是开拓了。

可能熟悉的人知道,这是德飞莱的51系统板,蛮顺手的。大家会用郭天祥的或者普中的,但我觉得其实都一样,重要的还是你去不去学。当时我拿着板子,配着里面的例程,看着郭天祥的那本书(就是那本大红色的)。烧些程序看现象,翻翻书看理论,跌跌撞撞最后也算学到了些东西,51单片机就这样入门了。

所以我觉得大家也可以按照这条路走下去,单片机这种东西要去做。我每学一种外设,我都会想这种外设可以干什么,结合我以前学的又可以做一个什么。不懂的可以问问高年级的学长,这是个积累的过程,毕竟做学问是厚积薄发。

51里面就是IO口点亮下LED、定时器、中断、键盘、数码管、LCD1286

4、串口等等,这些仔细做做很好玩的,程序开始不会编没关系,先烧些进去看现象,最后再用c语言的知识去解读就ok。

我再说说51可以用在哪,其实低端电子领域都可以,厉害吧。平时院里学校里做做科创,参加下小比赛,做个测温测速等等。51的程序编写起来也不难,得有“位操作”这个思想!

下面开始我的第二部分:MSP类单片机的学习,这说起来就比51要复杂些了。但大家能看到这一部分,说明大家单片机已经入门,可以像更高的部分出征了。 一般开始做MSP430的板子都是从MSP430 lanuchpad这款开始的吧。没错就是下面这货。

这块板子很基础,可以学习的东西也很多,就是这块不及手掌大小的板子就能敲开MSP430世界的大门,神器吧。下面我会介绍下MSP430,而且下文为了方便我就简称它430了(可不是打dota2的那个430,哈哈)。

了解单片机从哪里开始呢?没错就是datasheet(数据手册)或者usermanual(用户手册)。这些可能在51的世界里接触不多,因为毕竟51的核心处理器就那一个,不同的厂家只是添加不同的外设再拿出来卖,所以问问人逛逛论坛就知道咋用了。但是430有点不一样,因为MSP430的型号细分实在太多了,这时候就需要我们去看datasheet和usermanual了,因为从这里我们才能知道板子有哪些资源(资源就是主频、UART口个数、定时器个数、中断口、ADC模块等等)。

用的多的型号都能在网上找到中文版的数据手册,了解一个芯片一般有这两样就够了。但是还是英文数据手册居多,因为这可是外国的公司,所以小伙伴们也能趁机学学英语。

这张图片是我学习430资料的一小部分,其实学习430和51差不多,就是烧程序、读例程、做项目再自己试着写程序。在此过程进一步丰富自己的硬件知识。

在这里,注意一下,430操作的思想是“寄存器操作”(还记得上面51的“位操作”嘛,这两个可是有区别的)。怎样理解“寄存器操作”呢?其实看一下最基础的看门狗的操作就知道了, WDTCTL = WDTPW+WDTHOLD; // Stop watchdog timer 这上面等式的左边就是寄存器。

但你可不能说430里没有位操作噢,寄存器只是封装了很多个位操作。在最基本的IO控制输入输出的例程中,就又能看到熟悉的位操作了::PAOUT &= ~(BITA + BIT7)。大家不要模糊,其实位操作太少了就没必要提升到寄存器操作,这两者不矛盾。

公司介绍

1、都说MSP430,可有谁又知道这是哪家公司的产品呢?我来抛砖引玉下:该公司是德州仪器(Texas Instruments),简称TI,是全球领先的半导体公司。这公司了不得,在模拟和数字领域都很有作为,如果是做电路、电源方向的同学会更熟悉。所以我上面板子的全称是:TI MSP430 LaunchPad,还有比较常用的TI MSP430G2553和MSP430F6638等等。

2、就是我要安利的一项技能:从芯片公司的官网找到你想要的资料(绝对免费而且无误)。入行时间比较长的都知道,所以我向新手普及下:越是想TI、ADI这种大公司,它们产品的资料越是容易在其官网上找到,所以可以百度然后进去,嗯,就像发现了新大陆一样。如下: 这里面输入你选用的芯片型号,就能找到我上面说的datasheet和usermanual。最关键的是有官方提供的“例程”有木有,这个才是大家最关心的有木有~对我们来说,例程就是最好的老师,在此基础上进行二次开发就容易的多了。

当然官网里还有很多其他的东西和功能,详细介绍网上百度下就有,我只是指出了最基本的功能,希望大家能用好。

大二的上学期又过去了,时光匆匆,很多事其实都是事后才能明白。MSP430就这样简单学了下,也做过一些入门级的小工程。大二下学期就要来了,电信类真正的专业课接踵而至。下学期又补了了下新的硬件知识,而且寒假开始学STM32,这才是大头。下文即将介绍。

对了,每一部分结束我又来安利了,我现在有一块51的板子,一块430的板子,还有块2016年国赛(大学生电子设计竞赛)的指定用板,还有很多小的有价值的外设和工具。除此之外,很多书学习单片机的书,以及国赛省赛竞赛(哈哈,有多少同学希望借此保研)的指导用书我都有。感兴趣的可以在此楼留个意向,如果愿意交易的话,我还会有针对性的提供丰富的资料。收集这么多资料,没有功劳,也有苦劳哇。

第三部分、单片机的重头戏,32位微处理器的代表:ARM 的STM32.有些工程师在设计时考虑10元以下的单片机有很多可选择,AVR,、MSP430、51等等。对速度和片内外设没有什么要求,只要价格便宜就可以了,根本用不着STM32这些高性能的32位单片机;另外,有些工程师则对应用性能,外围接口,可靠性,抗干扰能力,开发工具,使用的人数,用户习惯这些有较高要求...STM32的出现像一个强者,我觉得很有必要学习这个,而且是学好这个。

具体说来,STM32是ST公司推出的基于ARM-Cortex-M3内核的32位单片机。我当时用的就是大名鼎鼎原子哥的战舰STM32。不得不承认,这里面很有分量,知识的体系比51又上了好几个层次。如下图、

ALIENTEK 战舰 STM32 开发板选择的是 STM32F103ZETT6 作为 MCU,该芯片是 STM32F103 里面配置非常强大的了,它拥有的资源包括: 64KB SRAM、512KB FLASH、2 个基本定时器、4 个通用定时器、2 个高级定时器、3 个 SPI、2 个 IIC、5 个串口、1 个 USB、1个 CAN、3 个 12 位 ADC、1 个 12 位 DAC、1 个 SDIO 接口、1 个 FSMC 接口以及 112 个通用IO 口。

现在大家看到这些模块,结合我上面普及的基本内容,大家应该对这些名词都不陌生吧。达到这种水平,其实单片机就已经走过了很长的路了。继续加油。

下面说说我学stm32的一路,当然套路基本都固定了。先看介绍,再读程序写程序烧程序,看实验现象,最后改进提升。

现在想起来,这里面的每个实验都教会我很多东西。如果你也可以认真做下去,并消化吸收好,问题也不大。这里不吹不黑,战舰的这款板子无论是从板子设计或者是提供资料的齐全度来说,都算是国内的良心之作。我那时是2013年的板子,还是STM32F103系列的。听说去年他们又出了F4系列,这种高速板加上浮点数运算什么可是很厉害的。

话说上一回讲到ARM STM32的基本介绍,现在来聊聊ARM里面编程的思想。

关于ARM的模块使用(我图片上介绍的那些),对着例程和板子一个个来,再加上前面学习51和430的积累,这些应该好接受。所以下面我会淡化这些,但是有问题还是可以跟帖问。

我这里有条线索:位操作>寄存器操作>库函数操作,如果这几个你能明白的话,直接学ARM就ok的。可以看出来51对应位操作,430可以寄存器操作了,那么最后就是ARM的库函数操作了。其实ARM的库函数也是建立在寄存器的基础上,只不过商家进行二次开发封装成了“函数”。仔细想想,这和C或者matlab里面的函数是一个概念,都是为了方便用户使用。相对应的,一些IO的初始化都是用结构体来操作(因为ARM的IO要设置的东西太多了,不是51那么一两句就能搞定的),这样也是为了和库函数配套使用。

举个例子,GPIO_SetBits(GPIOB, GPIO_Pin_5);这句话就能设置GPIOB.5 输出 1。现在看不懂没关系,只要慢慢来以后看到这的时候,能想起来就ok。

所有关于单片机编程的软件问题。

51一般用的多就是keil啦,刚开始没接触这些没关系。其实这就是一个编写代码、烧录程序的工具,和word没多大差别。怎么学会用它呢?一般这么常用的软件,网上都有教程,对照着多操作几次就行了。然后430用的多的就是AVR和TI推广的CCS,针对ARM的编程软件也有很多种(不过我现在只能想起keil,其他的一时想不起来,哈哈)。总体来看,不同的芯片都有相应的开发平台(这可是它们背后生产商的利益博弈),尽量选用人多用的那个版本就ok。这么多也不是要全部掌握,不要有压力,一个原则:用到什么学什么。我是走了很多弯路之后才明白,这些软件本质都是差不多的。

51单片机学习经验分享

单片机学习

51单片机的学习经验(附学习总结)

单片机学习心得体会

单片机学习感想

学习单片机感想

论单片机学习

学习单片机感受

学习单片机心得

单片机学习小结

单片机学习经验分享整理
《单片机学习经验分享整理.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档