怎样学习MSP430单片机

MSP430是Texas Instrument(TI,德州仪器)推出的一款超低功耗单片机。TI是一个非常有实力的、全球领先的芯片制造公司,MSP430不仅因为其优秀的设计,更因为TI提供的强有力的技术支持,而很快成为今天市场上非常受欢迎的一款单片机。

使用官方资料

学习使用任何一款芯片,我们要明确最根本最权威的参考资料是官方给出的资料。对于MSP430单片机,也不例外。市面上有各种各样介绍MSP430单片机的书,水平参差不齐。而其中有一大部分基本上就是翻译芯片手册,更大的问题是,很多书上还有大量的印刷错误等(像寄存器写错、程序有问题等的现象很常见)。这样的情况下,很难好好学习。

在学习430单片机的过程中,尤其是对于接触过51单片机的人来说,我们最好不要还是像学习51单片机一样,到处找视频教程,指望着完全中文的资料,而应该学会如何去使用官方给出的资料。或许你没有体会到这样有什么好处,但是将来如果要研究一些比较深入的东西,或者你要用一些最新的芯片,这时你唯一能获取的资料,不是各种中文书籍和翻译来的资料,更不是各种视频教程,而往往只是官方给出的一些全英文的手册。

所有的芯片官方都会给出对应的Data Sheet(数据手册,芯片手册),有些会有Application Note(应用笔记),对于一些复杂的芯片,有一些强大的公司可能也会推出一些中文资料,但还是以英文资料为主。因为英语是国际通用的语言,何况很多高科技产业往往又在国外。过分依赖中文资料,就很难学好这些东西。另外,官方给出的资料,就像是说明书一样,经过了很多次的核对修正,还会及时的勘误,比如430的Errata Sheet会专门指出官方各种手册资料中的纰漏和错误。官方手册的权威性,是任何根据官方手册编写的资料视频所不及的。

不要惧怕英文

在技术性的手册中,除了一些专有名词外,都会避免使用复杂的句式,避免复杂的语法,以及一些难以理解的词汇。看不懂的专有名词,我们完全可以通过查词典来克服。久而久之,就会习惯,英文水平长进了,也不再惧怕英文了。这里引用一位同学的话:“TI的文档写的相当好,通俗易懂,而中文翻译水平层次不一,必要的术语也不知道什么意思。而且中文翻译的文档制作的真心太差。我想你们也不甘心学十年英语就为了一个六级吧?”

基本认识

学习MSP430,首先我们应该了解MSP430的特点,分为哪几个系列,这些在官方介绍文档中都有。

大致了解430内部都集成了哪些外设模块,分别有什么作用,比如AD、串口、硬件I2C等。根据实际应用需要,查看官方选型手册,选择合适的430型号,看RAM、ROM大小、定时器数目、最高运行速度、IO管脚数目、封装等就可以。也可以直接在TI官网选择型号(如下图)。

如果不知道选什么型号,或者是想先学学,可以选一些常用型号,如MSP430F149,MSP430G2553(LaunchPad上用的,有DIP直插的封装,比较好用),MSP430F5438(比较高端的一个型号,价格也比较贵)。


参考资料

选好型号后,就可以上TI官网,下载该型号对应的DataSheet,User's Guide,以及Code Examples。

DataSheet介绍了具体某个型号的各种参数,封装格式,管脚分布,性能特点等。

User's Guide是分为几个系列分别去讲各种模块的结构和寄存器,同一个系列的不同型号,含有的同一个模块操作通常都一样,主要是管脚分配不一样,或者一些型号只含有模块中的一部分功能,比如定时器的比较捕获模块数目不同。

而Code Examples则是官方给出的可直接编译执行的程序代码。比如MSP430G2553内部有10位精度的AD,即ADC10模块,而在MSP430x2xx Family User's Guide上就有对ADC10模块的介绍。同样是2xx系列,有些芯片没有ADC10,但是有ADC12,这个模块同样会在User's Guide上介绍。

开发板

我们可能需要一块开发板,官方推出的LaunchPad是一个不错的选择。LaunchPad上使用的是ValueLine超值系列(2xx系列)的430芯片G2553和G2452,对于简单的项目开发绰绰有余,比51单片机常用的型号89C52RC要强大不少,而且是430单片机中有DIP直插封装的很少的几种型号之一,对于我们手工焊接很方便。

LaunchPad更大的优势在于,在几十块钱的开发板上,集成了JTAG调试芯片,可以连接计算机直接进行程序的调试。LaunchPad使用的是两线JTAG,而不少430型号不支持两线JTAG,则需要购买比较昂贵的430标准JTAG仿真器。JTAG仿真器同时可以进行程序的烧写。430也支持价格低廉的BSL方式烧写程序,但BSL就没有JTAG强大的调试功能了。

关于LaunchPad的使用,官方给出了十分详细的介绍文档《Getting Started with the MSP430 LaunchPad》,包括怎么新建工程都有具体到每一步的截图(使用的是CCS软件)。关于具体电路实现,则可以参考官方的《MSP430 Hardware Tools User's Guide》。如果动手能力强,也可以尝试自己焊接简易开发板。

开发环境

然后要安装开发环境。最常用的是官方推出的CCS和IAR公司推出的IAR Embedded Workbench For MSP430。两种软件各有优缺点,CCS的优点是集成Eclipse,还有官方推出的430Ware、Grace插件,用起来比较方便,软件比较稳定,但是由于Eclipse基于Java开发,反应比较迟钝,IAR的优势则是编译效率非常高,能产生高效的代码,缺点是运行不太稳定,有时会死机。总体来说,目前建议用IAR EW430。

程序编写

然后就要开始写程序了。首先我们应该了解最基本的一些东西,时钟、看门狗定时器、以及IO操作。我们并不一定要对它们都掌握透彻,但是应该知道怎么初始化时钟开启外部高速晶振,看门狗是什么,怎么关闭看门狗以免系统复位等。

然后根据我们的实际需求,再进一步去了解定时器、串口、硬件SPI、硬件I2C、Flash读写、AD、DA等的操作。如果是为了做一个项目,我们只要学习要用的模块就足够了,如果是想提前学习以备以后使用,了解常用的模块就可以了。

学习每个模块时,我们应该先看芯片手册,确认自己使用的型号有这个模块,以及相应IO口的分配情况,然后认真详细的看User's Guide中内部结构框图和寄存器的介绍,参考Code Examples去写程序,并进行测试。在学习每个模块时,我们可以把这些模块的程序写成独立的文件,必要的地方自己做一些注释说明,保留好这些程序,方便以后使用。下次再用的时候,即使忘了怎么操作,只要复制自己之前写好的模块文件,然后根据自己注释的调用规则去调用函数,就可以很轻松的使用,代码得到了重复利用,非常节省时间精力。

学过51或其他单片机的人,就没必要特地花时间在学430的时候又特地把数码管、1602什么的外设重新再学一遍了,因为程序都是一样的写法,只是IO口的操作有点不同而已。

在这里,强烈建议大家学会模块化编程,代码分层。

前面说的把每个模块写成单独的文件,通过调用函数去重复使用,就是模块化编程的思想。

另一方面,学会代码分层,比如同样是驱动数码管,对于不同的单片机,只是IO操作语句写法不同,而IO的高低电平控制是一样的。我们把具体IO操作语句用宏定义写出来(如#define LED_OFF P1OUT&=~BIT0),更换单片机只需要修改宏定义,这样就可以实现代码复用,节省了精力。

在这里,宏定义根据不同的单片机,写法不一样,属于硬件接口层;而数码管扫描函数始终是调用宏定义过的语句控制IO口电平,不同单片机写法一样,则属于驱动层;这样的做法就叫做代码分层,也是模块化编程很大的一个特点。

这里再说一点,可能有人之前学习51单片机时写过软件模拟I2C程序读写AT24C01等芯片,现在改用430了,我们仍然可以用宏定义操作IO,软件模拟I2C时序,另一方面,430内部集成了硬件I2C,我们也可以学习硬件I2C,通过设置相关寄存器去控制相同的芯片。一般情况下,硬件接口比软件接口会更有优势,因为不需要占用CPU时间去模拟时序。这个时候,可能就需要重新去了解一下了,因为有些接口用硬件实现和用软件模拟还是有一定区别的。

单片机不是用来学的,而是要去用的

用什么学什么,这样能更好的掌握所学知识,也不至于感觉无从下手。MSP430有几百个型号,我们没必要把每种型号每个模块都拿来学一遍,也不可能有那样的精力,即使你打算全部学,还没学完,TI又会推出一款新的产品。对于其它的各种芯片等的使用也是类似的。所以我们要做的,是掌握学习的方法,以不变应万变。


本文由jzj1993原创,转载请注明来源:http://www.paincker.com/msp430-study


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242186.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【原创】“三次握手,四次挥手”你真的懂吗?

记得刚毕业找工作面试的时候,经常会被问到:你知道“3次握手,4次挥手”吗?这时候我会“胸有成竹”地“背诵”前期准备好的“答案”,第一次怎么怎么,第二次……答完就没有下文了,面试官貌似也没有…

17年前存款11万,取款时银行以销户为由拒绝,法院判银行全额赔付

1999年年底,陈伯在某银行的存折中存入2.6万元,加上这一笔,当时存折里总共有116703元,之后存折遗失。2016年,陈伯在搬家时找到这个存折。从2017年开始,陈伯多次拿着存折到银行取款,均被银行告知账…

VS2010 + OpenCV 2.4.1 环境配置

VS2010 OpenCV 2.4.1 环境配置 (Windows 7 x64 中文旗舰版;Visual Studio 2010 中文旗舰版;OpenCV2.4.1。) 1.用户环境变量(或系统环境变量),新建或添加 PATH D:\Program Fil…

上市公司降价200万卖房仍然无人接手,有的甚至降价1900万

房价降价200万甩卖房子还卖不出去?看到这估计很多人不相信,因为通过各种数据统计,我们可以看到2018年中国大部分城市的房价都是上涨的,而且部分城市甚至上涨40%以上,但我们普通老百姓看到的却是有些业主降价几十万甚至…

2013电赛总结【西电专用】

电赛全称全国大学生电子设计竞赛,全国赛在每逢单数年的9月份举行,竞赛时间四天三夜。 竞赛流程 政策可能有变,每一届竞赛流程可能都不一样,这里只是根据我的了解进行总结的。 我们学校电赛差不多是从每年年初新学期开学时开始进行…

写一篇新文章

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

Matlab与C/C++/Java的一些区别

变量 定义和初始化 C/C中要先定义变量,如果未初始化,其值一般是不确定的 Java中变量使用前,须初始化或赋值(实例化时,类中的全局变量会自动被初始化为默认值) Matlab中变量在写入时不需预先定义&#xff0c…

男子借款70万前后还了1600万仍未还清,如何避免套路贷?

事件回顾:男子借70万陷入套路贷,前后还了1600万。浙江宁波有一侯姓男子,自己是做石材生意的,本来自己一直安安分分做着生意,2013年年底,因为对一个建筑项目投标,急需一大笔钱。他通过中间人向张…

测试下HTML博文

发布测试 <script>window.onload function () {var obj document.getElementById("box");alert("获取#box元素成功");} </script>

一篇故事讲述了计算机网络里的基本概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等

从别处看到的一篇很不错的文章&#xff0c;形象地阐释了网络里的抽象概念。 计算机主机网关的作用是什么? 假设你的名字叫小不点&#xff0c;你住在一个大院子里&#xff0c;你的邻居有很多小伙伴&#xff0c;在门口传达室还有个看大门的李大爷&#xff0c;李大爷就是你的网关…

Photoshop图层学习总结

移动工具选择图层 方式1&#xff1a;按Ctrl键并单击画布相应位置&#xff0c;选择相应图层 方式2&#xff1a;勾选“自动选择” 图层蒙版 图层蒙版中白色部分&#xff0c;对应图层位置会显示&#xff1b;黑色部分&#xff0c;对应图层不显示(即为透明) 1、可在图层面板创建 2、…

Photoshop常用快捷键

常规CtrlA/X/C/V全选/剪切/复制/粘贴CtrlN新建文件CtrlShiftN新建图层CtrlS保存CtrlShiftS保存为选择CtrlD 取消选择Shift添加到选区Alt 从选区减去 ShiftAlt 与选区交叉Ctrl移动选区变形Shift保持长宽比Alt 中心对称 Ctrl扭曲变形缩放滚动Alt鼠标滚轮 缩放Ctrl鼠标滚轮左右滚动…

5000万存银行会有什么待遇?有钱真让人羡慕!

年底了估计有不少朋友家里拆迁&#xff0c;5000万赔偿款正愁着没地方花&#xff01;所以想找个银行存钱&#xff01;开个玩笑&#xff0c;我们回归正题&#xff0c;你要是真有5000万存进银行&#xff0c;那不管是对国有大银行还是对一些小银行来说&#xff0c;绝对是一笔大额数…

如何从ios酷我音乐盒中导出已下载的音乐文件(使用Java编程实现)

本工具已经编写了第二版&#xff0c;为不了解编程的读者提供了可以直接使用的软件&#xff0c;请移步这里阅读和使用 http://blog.csdn.net/jzj1993/article/details/44459983 本文所涉及内容用于技术学习&#xff0c;请勿用于不正当用途&#xff0c;否则后果自负。酷我音乐ios…

2018年中国人均GDP接近1万美元,这在全球处于什么样的水平?

按照人均1万美元计算&#xff0c;目前我国大概可以排在世界第64位&#xff0c;比2017年的上升6位左右。中国人均GDP突破1万亿美元&#xff0c;属于中等偏上收入国家1月16日有媒体爆料&#xff0c;预计2018年人均国内生产总值可接近1万美元。1万美元的人均GDP略高于中等偏上收入…

信用卡逾期不还是否要坐牢?看法律是怎么规定的

信用卡不还款要坐牢&#xff1f;估计这事情说的有点严重&#xff0c;但事实上确实有不少人因为信用卡逾期还不上而被法院判刑了的。我们先来看2个实际的案例。案例1&#xff1a;萍乡一贸易老板经常套现信用卡用于偿还债务。2014年5月开始&#xff0c;黄某开始不按期归还信用卡账…

安卓设置Activity切换动画无效的问题

做安卓App时&#xff0c;常会设置Activity之间切换的动画。常用的方法有两种&#xff0c;一种是用Activity的overridePendingTransition方法&#xff1b;另一种是用style文件通过xml进行设置。 一开始使用style的时候&#xff0c;我只设置了Window的动画&#xff0c;在大部分手…

优惠到期,2月1日起支付宝将恢复0.6%的手续费

这个题目相信很多网友都会一脸茫然&#xff0c;支付宝优惠到期是什么优惠呢&#xff1f;我们怎么没有享受过&#xff1f;其实这个所谓的优惠就是刷卡手续费的费率优惠&#xff0c;当然这个主要是针对商家而言&#xff0c;对普通消费者暂时没有什么影响。可能说到刷卡手续费&…