微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 怎样学习MSP430单片机

怎样学习MSP430单片机

时间:11-19 来源:互联网 点击:

》,包括怎么新建工程都有具体到每一步的截图(使用的是CCS软件)。关于具体电路实现,则可以参考官方的《MSP430 Hardware Tools Users Guide》。如果动手能力强,也可以尝试自己焊接简易开发板。

开发环境

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

程序编写

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

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

学习每个模块时,我们应该先看芯片手册,确认自己使用的型号有这个模块,以及相应IO口的分配情况,然后认真详细的看Users 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又会推出一款新的产品。对于其它的各种芯片等的使用也是类似的。所以我们要做的,是掌握学习的方法,以不变应万变。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top