无论您是 MSP430 的设计老手,还是初涉 MSP430 应用设计,8 月 30 日到 9 月 16 日,快来分享您认为对您设计有用的资料文档!每一位分享者将获赠一块 MSP430 LaunchPad + MSP430 电容触摸 BoosterPack 。


分享内容: 资料可来源于 TI 官方网站或自创内容,且和MSP430相关
分享方式:
获赠标准:一个 ID 仅拥有一个获赠机会
我们期待您的给力分享!
希望 TI 官方 MSP430 社区为大家提供一个学习、分享的平台!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
无论您是 MSP430 的设计老手,还是初涉 MSP430 应用设计,8 月 30 日到 9 月 16 日,快来分享您认为对您设计有用的资料文档!每一位分享者将获赠一块 MSP430 LaunchPad + MSP430 电容触摸 BoosterPack 。


我们期待您的给力分享!
希望 TI 官方 MSP430 社区为大家提供一个学习、分享的平台!
分享一个MSP430驱动BMP085电子气压计,数据通过串口传回的代码。编译器使用Energia。
先上效果图

下面是代码:
/*
Get pressure and temperature from the BMP085.
Serial.print it out at 9600 baud to serial monitor.
*/
#include <Wire.h>
#define BMP085_ADDRESS 0x77 // I2C address of BMP085
const unsigned char OSS = 0; // Oversampling Setting
// Calibration values
int ac1;
int ac2;
int ac3;
unsigned int ac4;
unsigned int ac5;
unsigned int ac6;
int b1;
int b2;
int mb;
int mc;
int md;
// b5 is calculated in bmp085GetTemperature(...), this variable is also used in bmp085GetPressure(...)
// so ...Temperature(...) must be called before ...Pressure(...).
long b5;
short temperature;
long pressure;
void setup()
{
Serial.begin(9600);
Wire.begin();
bmp085Calibration();
}
void loop()
{
temperature = bmp085GetTemperature(bmp085ReadUT());
pressure = bmp085GetPressure(bmp085ReadUP());
Serial.print("Temperature: ");
Serial.print(temperature, DEC);
Serial.println(" *0.1 deg C");
Serial.print("Pressure: ");
Serial.print(pressure, DEC);
Serial.println(" Pa");
Serial.println();
delay(1000);
}
// Stores all of the bmp085's calibration values into global variables
// Calibration values are required to calculate temp and pressure
// This function should be called at the beginning of the program
void bmp085Calibration()
{
ac1 = bmp085ReadInt(0xAA);
ac2 = bmp085ReadInt(0xAC);
ac3 = bmp085ReadInt(0xAE);
ac4 = bmp085ReadInt(0xB0);
ac5 = bmp085ReadInt(0xB2);
ac6 = bmp085ReadInt(0xB4);
b1 = bmp085ReadInt(0xB6);
b2 = bmp085ReadInt(0xB8);
mb = bmp085ReadInt(0xBA);
mc = bmp085ReadInt(0xBC);
md = bmp085ReadInt(0xBE);
}
// Calculate temperature given ut.
// Value returned will be in units of 0.1 deg C
short bmp085GetTemperature(unsigned int ut)
{
long x1, x2;
x1 = (((long)ut - (long)ac6)*(long)ac5) >> 15;
x2 = ((long)mc << 11)/(x1 + md);
b5 = x1 + x2;
return ((b5 + 8)>>4);
}
// Calculate pressure given up
// calibration values must be known
// b5 is also required so bmp085GetTemperature(...) must be called first.
// Value returned will be pressure in units of Pa.
long bmp085GetPressure(unsigned long up)
{
long x1, x2, x3, b3, b6, p;
unsigned long b4, b7;
b6 = b5 - 4000;
// Calculate B3
x1 = (b2 * (b6 * b6)>>12)>>11;
x2 = (ac2 * b6)>>11;
x3 = x1 + x2;
b3 = (((((long)ac1)*4 + x3)<<OSS) + 2)>>2;
// Calculate B4
x1 = (ac3 * b6)>>13;
x2 = (b1 * ((b6 * b6)>>12))>>16;
x3 = ((x1 + x2) + 2)>>2;
b4 = (ac4 * (unsigned long)(x3 + 32768))>>15;
b7 = ((unsigned long)(up - b3) * (50000>>OSS));
if (b7 < 0x80000000)
p = (b7<<1)/b4;
else
p = (b7/b4)<<1;
x1 = (p>>8) * (p>>8);
x1 = (x1 * 3038)>>16;
x2 = (-7357 * p)>>16;
p += (x1 + x2 + 3791)>>4;
return p;
}
// Read 1 byte from the BMP085 at 'address'
char bmp085Read(unsigned char address)
{
unsigned char data;
Wire.beginTransmission(BMP085_ADDRESS);
//Wire.send(address);
Wire.write(address);
Wire.endTransmission();
Wire.requestFrom(BMP085_ADDRESS, 1);
while(!Wire.available()) ;
// return Wire.receive();
return Wire.read();
}
// Read 2 bytes from the BMP085
// First byte will be from 'address'
// Second byte will be from 'address'+1
int bmp085ReadInt(unsigned char address)
{
unsigned char msb, lsb;
Wire.beginTransmission(BMP085_ADDRESS);
//Wire.send(address);
Wire.write(address);
Wire.endTransmission();
Wire.requestFrom(BMP085_ADDRESS, 2);
while(Wire.available()<2)
;
//msb = Wire.receive();
msb = Wire.read();
//lsb = Wire.receive();
lsb = Wire.read();
return (int) msb<<8 | lsb;
}
// Read the uncompensated temperature value
unsigned int bmp085ReadUT()
{
unsigned int ut;
// Write 0x2E into Register 0xF4
// This requests a temperature reading
Wire.beginTransmission(BMP085_ADDRESS);
//Wire.send(0xF4);
Wire.write(0xF4);
//Wire.send(0x2E);
Wire.write(0x2E);
Wire.endTransmission();
// Wait at least 4.5ms
delay(5);
// Read two bytes from registers 0xF6 and 0xF7
ut = bmp085ReadInt(0xF6);
return ut;
}
// Read the uncompensated pressure value
unsigned long bmp085ReadUP()
{
unsigned char msb, lsb, xlsb;
unsigned long up = 0;
// Write 0x34+(OSS<<6) into register 0xF4
// Request a pressure reading w/ oversampling setting
Wire.beginTransmission(BMP085_ADDRESS);
//Wire.send(0xF4);
Wire.write(0xF4);
//Wire.send(0x34 + (OSS<<6));
Wire.write(0x34 + (OSS<<6));
Wire.endTransmission();
// Wait for conversion, delay time dependent on OSS
delay(2 + (3<<OSS));
// Read register 0xF6 (MSB), 0xF7 (LSB), and 0xF8 (XLSB)
Wire.beginTransmission(BMP085_ADDRESS);
//Wire.send(0xF6);
Wire.write(0xF6);
Wire.endTransmission();
Wire.requestFrom(BMP085_ADDRESS, 3);
// Wait for data to become available
while(Wire.available() < 3);
msb = Wire.read();
lsb = Wire.read();
xlsb = Wire.read();
up = (((unsigned long) msb << 16) | ((unsigned long) lsb << 8) | (unsigned long) xlsb) >> (8-OSS);
return up;
}
使用430F149的定时器B产生6路PWM输出,调试通过!相互学习,相互交流!
/*主函数*/
#include <msp430x14x.h>
#include "TBPwm.h"
//void delay()
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
ClkInit();
TBPwmInit('A',1,'P','P','P','P','P','P'); //将定时器TB初始化成为PWM发生器
//A:时钟源=ACLK ; 无分频; 通道1和通道2均设为高电平模式。
TBPwmSetPeriod(630); //通道1/2的PWM方波周期均设为630个时钟周期 大约20ms
// TAPwmSetDuty(1,200); //1通道 有效200个时钟周期
/* | 30 80 125 130 百分比
| 0.56 1.52 2.48 周期
|-90 0 90 舵角
*/
TBPwmSetPermill(1,80); //1通道 20.0%
TBPwmSetPermill(2,80); //2通道 20.0% 30~125下面 完整
TBPwmSetPermill(3,80); //3通道 20.0%
TBPwmSetPermill(4,80); //4通道 20.0% 30~125下面 完整
TBPwmSetPermill(5,80); //5通道 20.0%
TBPwmSetPermill(6,80); //6通道 20.0% 30~125下面 完整
LPM0;
return 0;
}
以前借同学的LaunchPad学习,板子最终要还的,想有块自己的LaunchPad,继续学习!
传上学习LaunchPad的一些必须的资料!
我这里收藏有几本关于MSP430单片机使用时常用的工具书,在用到MSP430单片机软硬件开发时可作为参考,方便查阅。
1.《MSP430 系列超低功耗16位单片机原理与应用》 胡大可
2.《MSP430系列单片机C语言程序设计与开发》 胡大可
3.南航MSP430 选修课 试用教材
4.MSP430-TEST16X原理图

以前用义隆的单片机模拟做过一个触摸产品,软件模拟的效果很差。MSP430G2xxx系列硬件自身就做好了触摸功能,不知道具体的效果怎么样。在官网下载了一些这方面的资料,如下:
http://www.ti.com.cn/general/cn/docs/litabsmultiplefilelist.tsp?literatureNumber=zhca078
http://www.ti.com.cn/general/cn/docs/lit/getliterature.tsp?baseLiteratureNumber=zhca083&fileType=pdf
http://www.ti.com.cn/cn/lit/ug/zhcu011/zhcu011.pdf
4. Capacitive Touch BoosterPack (430BOOST-SENSE1) for the LaunchPad User's Guide (Rev. A)
http://www.ti.com.cn/cn/lit/ug/slau337a/slau337a.pdf
5. S-Touch电容式触摸控制器PCB布局指南 (见附件)
文档链接:www.deyisupport.com/.../_FA578E4E_MSP430_8476E689786409632E95_.doc
该文档对基于MSP430的触摸按键的学习有很好的指导性意义,文档里面详细地介绍了触目按键的实现原理并结合MSP430内置定时器来进行详细的讲解,对于新手做触摸按键来说可以很快的入门,为高级触目按键的设计打下基础。
我觉得TI官网上提供了许多与芯片相关的权威资料,比如芯片的说明手册等。
比如最近一直在使用的MSP430F5438芯片,该芯片可谓强大,具有大量的片上外设,极大的简化了应用设计。目前已经使用该款芯片实现了无线温度传输系统,U盘控制以及TFT彩屏驱动,目前考虑更大限度的发挥该芯片的性能,即在芯片上运行UCOSII系统,以实现更复杂的控制功能。
在使用的过程中,我主要参考TI官网上的数据手册,手册链接地址为:www.ti.com.cn/.../msp430f5438.pdf
www.ti.com.cn/.../slaz046n.pdf
www.ti.com.cn/.../slau208k.pdf
这些手册有详尽的使用说明和特性说明,能够快速的帮助用户掌握该款芯片的特点及使用方法,极大限度的降低系统开发的时间,缩短项目时间。
以上就是我在这段时间使用TI的430系列芯片的心得,特在此将给予我巨大帮助的资料与大家分享,同时也感谢TI公司提供的控制芯片以及各种资料,让我在应用中得心应手。
在2013湖北省TI杯设计大赛中使用过G2 为解决其引脚少的缺点,故采用串行液晶显示来解决。
在附件中就是我所编写的串行液晶显示头文件,另外附件中还有不少G2资料。
这是我在TI网站看到的非常有用的文档 题目是:16 位MSP430G 系列微处理器的使用扩展
我是刚学习MSP430的新手,很多都不懂,在网站上一直看视频资料学习,分享给大家
视频学习连接:http://edu.21ic.com/
一些行家的积累的知识总结,经验,问题和解决方法:
1.MSP430常见问题汇总bbs.21ic.com/icview-356111-1-1.html
2.msp430系统中文资料荟萃精华bbs.21ic.com/icview-371266-1-1.html
3.MSP430单片机开发环境IAR使用教程http://dl.21ic.com/download/code/mps430-iar_embedded_workbench-pdf-ic-47927.html
4.msp430精品讲座http://dl.21ic.com/download/msp430-rar-ic-18354.html
5.msp430讲义(南京航空航天大学) http://dl.21ic.com/download/msp430-rar-ic-19059.html
6.MSP430Ware入门介绍http://dl.21ic.com/ebook-103239.html
7.MSP430Ware 驱动程序库http://dl.21ic.com/ebook-103240.html
8.LaunchPad 入门资料http://dl.21ic.com/ebook-102648.html
http://wenku.baidu.com/view/bde6a4d428ea81c758f57866.html
http://wenku.baidu.com/view/ebab51ddd15abe23482f4d35.html
http://wenku.baidu.com/view/525269116c175f0e7cd137e5.html
http://wenku.baidu.com/view/85e1490f4a7302768e99391c.html
http://wenku.baidu.com/view/5cbc7fec102de2bd9605888c.html
http://wenku.baidu.com/view/5edc4bea0975f46527d3e155.html
http://wenku.baidu.com/view/76513c020740be1e650e9a55.html
大家好!我也是学习单片机430不久,但是我们的学习的方法很重要,我觉可以寻找一些捷径的,建议可以通过一些视频学习。比如
第一个《10天学会430》视频教程地址为:v.youku.com/.../id_XMjg5MzgyMDY0.ht
第二官方430学习教程视频,地址:www.eeworld.com.cn/.../TI_LaunchPad_20120704
第三步就是寻找单片的书籍了,这是高手必须学会的。
第四步就是要学会看PDF的,这是问鼎巅峰的最强能力.
我是刚学习MSP430的新手,很多都不懂,在网站上一直看视频资料学习,分享给大家
www.eeworld.com.cn/.../TI_LaunchPad_20120704
本课程基于MSP-EXP430G2 LaunchPad EVM,针对MSP430入门级Value Line,面向MSP430以及MCU的初学者,讲述MSP430的基本知识,包括430内部各个外设,CPU, Basic Clock, Interrupt, GPIO, Timer, ADC以及通讯接口,另外还有关于CCSV5,MSP430的低功耗设计,Grace等章节。通过课程学习,使参加培训者掌握MSP430的基本用法,完成简单的430编程。
wenku.baidu.com/.../5cbc7fec102de2bd9605888c.html
这个是对MSP430的内部结构进行详细的介绍
德州仪器技术社区MSP430 LaunchPad资料汇总
【MSP 430 Launch Pad】基于Launch Pad资料大全(含学习笔记)
www.ideyi.org/.../article_1077_300138.html
【MSP 430 Launch Pad】基于Launch Pad设计方案汇总
我觉得我分享的文档是不错的哦,对于刚刚想入门430的我来说是值得好好看看的,它讲解的很详细吧,可惜自己没有真正的版来操作,希望自己运气好,能得到这块宝贝,MSP430 LaunchPad ,我爱你!!!
“使用 MSP430F1612 的 IEEE 802.15.4 和 ZigBee 硬件平台”,这篇文章快速引导我用MSP430构建Zigbee网络
LaunchPad 开发板介绍
前言
大家都拿到了超级便宜的 LaunchPad 的开发板,这些开发板有的朋友是拿来学习的,有
的只是看着便宜先入手一个。无论大家是出于什么目的都无所谓,现在板子到手了,咱们就
要把他利用起来。咱们 EE 论坛这次展开 LaunchPad 的千人大学习,我算是抛砖引玉发出此
贴,希望大家一起来编写 LaunchPad 的中文教材,打造中国最全面的LaunchPad 中文教材。
闲话不说了,介绍我挑重点的说,尽量少说废话。开始了!
正文省略....
初学了解 LaunchPad 的一些基本知识
上次某公司搞活动,说是与会者就送这个MSP430 LaunchPad ,最终证明是挂羊头骗大家参会。
这次,看条件很宽松呀,就出点小力换块板子吧,我一直想用来试试触摸按键,因为就430号称在待机功耗1uA时还能识别触摸按键。
很少人知道430也有用于无线充电的吧?我分享的是:MSP430BQ1010 WIRELESS RECEIVER-SIDE COMMUNICATION for WIRELESS POWER.pdf ( www.ti.com/.../msp430bq1010.pdf ) ,呵呵,之前看了才知道最新的无线充电需要的知识。
总的URL是: www.ti.com/.../msp430bq1010
来分享一些MSP430学习的书籍!!!大家多多学习~~~哈哈哈!
1.《MSP430系列超低功耗16位单片机原理与应用》
作者: 胡大可
出版社: 北京航空航天大学出版社
点击下载:
MSP430系列超低功耗16位单片机原理与应用_胡大可.pdf (4.21 MB, 下载次数: 56)
2.《MSP430系列FLASH型超低功耗16位单片机》
作者: 胡大可
出版社: 北京航空航天大学出版社
点击下载:
MSP430系列FLASH型超低功耗16位单片机_胡大可.part1.rar (4 MB, 下载次数: 54)
MSP430系列FLASH型超低功耗16位单片机_胡大可.part2.rar (677.29 KB, 下载次数: 12)
3.《MSP430系列单片机接口技术及系统设计实例》
作者: 魏小龙
出版社: 北京航空航天大学出版社
点击下载:
MSP430系列单片机接口_技术及系统设计实例_魏小龙.part1.rar (4.5 MB, 下载次数: 58)
MSP430系列单片机接口_技术及系统设计实例_魏小龙.part2.rar (4.5 MB, 下载次数: 59)
MSP430系列单片机接口_技术及系统设计实例_魏小龙.part3.rar (4.5 MB, 下载次数: 57)
MSP430系列单片机接口_技术及系统设计实例_魏小龙.part4.rar (1.03 MB, 下载次数: 12)
4.《MSP430系列单片机C语言程序设计与开发》
作者: 胡大可
出版社: 北京航空航天大学出版社
点击下载:
MSP430系列单片机C语言程序设计与开发_胡大可.part1.rar (4.1 MB, 下载次数: 63)
MSP430系列单片机C语言程序设计与开发_胡大可.part2.rar (4.1 MB, 下载次数: 57)
MSP430系列单片机C语言程序设计与开发_胡大可.part3.rar (4.1 MB, 下载次数: 65)
MSP430系列单片机C语言程序设计与开发_胡大可.part4.rar (3.48 MB, 下载次数: 51)
5.《MSP430系列16位超低功耗单片机原理与应用》
作者: 沈建华 杨艳琴 翟骁曙
出版社: 清华大学出版社
点击下载:
MSP430系列16位超低功耗单片机原理与应用_沈建华.pdf (2.77 MB, 下载次数: 13)
6.《MSP430系列单片机实用C语言程序设计》
作者: 张晞 王德银 张晨
出版社: 人民邮电出版社
点击下载:
MSP430系列单片机实用C语言程序设计_张晞.part1.rar (4.8 MB, 下载次数: 64)
MSP430系列单片机实用C语言程序设计_张晞.part2.rar (553.41 KB, 下载次数: 12)
《MSP430系列单片机实用C语言程序设计》一书附带程序.rar (243.13 KB, 下载次数: 12)
7.《MSP430单片机C语言应用程序设计实例精讲》
作者: 秦龙
出版社:电子工业出版社
点击下载:
MSP430单片机C语言应用程序设计实例精讲(秦龙).part1.rar (4.8 MB, 下载次数: 72)
MSP430单片机C语言应用程序设计实例精讲(秦龙).part2.rar (4.33 MB, 下载次数: 61)
8.《MSP430单片机应用系统开发典型实例》
作者:秦龙
出版社:中国电力出版社
点击下载:
MSP430单片机应用系统开发典型实例.part1.rar (4 MB, 下载次数: 83)
MSP430单片机应用系统开发典型实例.part2.rar (2.65 MB, 下载次数: 18)
9.《MSP430单片机基础与实践》
作者:谢兴红//林凡强//吴雄英
出版社:北京航空航天大学
点击下载:
MSP430单片机基础与实践.pdf (3.98 MB, 下载次数: 68)
10.《大学生嵌入式学习实践—基于MSP430系列》
作者:梁源贾 灵郝强
出版社:北京航空航天大学出版
点击下载:
大学生嵌入式学习实践-基于MSP430系列.part1.rar (4 MB, 下载次数: 69)
大学生嵌入式学习实践-基于MSP430系列.part2.rar (2.58 MB, 下载次数: 12)
11.《MSP430单片机原理与应用实例详解》
作者:洪利 章扬 李世宝
出版社:北京航空航天大学出版
点击下载:MSP430单片机原理与应用实例详解
12.《MSP430单片机自学笔记》
作者:张福才
出版社:北京航空航天大学出版
点击下载:
MSP430单片机自学笔记.part1.rar (4.2 MB, 下载次数: 73)
MSP430单片机自学笔记.part2.rar (2.78 MB, 下载次数: 23)
MSP430单片机自学笔记光盘资料
13.《MSP430系列单片机系统工程设计与实践》
作者:谢楷 赵建
出版社:机械工业出版社
点击下载: MSP430系列单片机系统工程设计与实践
14.《Embedded System Design using MSP430》
作者:Chris Nagy
点击下载:
Embedded System Design using MSP430_Chris.part1.rar (4 MB, 下载次数: 54)
Embedded System Design using MSP430_Chris.part2.rar (4 MB, 下载次数: 54)
Embedded System Design using MSP430_Chris.part3.rar (2.79 MB, 下载次数: 4)
更多MSP430资料:http://www.eeboard.com/bbs/forum.php
我发一个专题相关的吧:
晶体振荡相关 官方文档
MSP430 32-kHz Crystal Oscillators (Rev. B)
MSP430 LFXT1 Oscillator Accuracy
其中一篇有中文文档:MSP430 32kHz 晶体振荡器 (Rev. B)
Crystal Recommendations For TI MSP430 Microcontrollers
以上文档都是直接或者间接来自于官方吆
我这个专题形式,像我我这样的不多吧,说话要算数,给我一个LanchPad吆,当然改成送我一些器件更好
430新手啊,初接触430是因为51的功耗太大了,寻找一块低功耗的处理器,实现不太复杂的功能,发现430居然是16位的低功耗单片机,非常惊喜,目前学习的是430的149啊,这个系列虽然老土,但是销量大,便宜,资料也相对多点儿。主要是看数据手册啊,其次就是下载例程,自己需要什么功能,先找合适的例程,再根据需要改下适合自己的应用就好了,还在慢慢摸索中,希望能得到一块开发板啊,这样能学习快点儿。不会传多个附件啊,哎,就这样吧。
http://www.ti.com/product/msp430f149
我这有个 ucosii成功移植到msp430的例程 完整的工程 希望对大家有用
上次 没能获得MSP430 LaunchPad + MSP430 电容触摸 BoosterPack 。希望这次能有幸获得
我接触430是因为今年参加我们这儿的电子竞赛,感觉挺好用的,用8位单片机的价格实现了16位的性能,就是有点不足,既然需要对寄存器进行配置,可寄存器讲解的资料很少,总体来说,官方例程很好,从中可以看到很多配置模式,呵呵,接下来分享一下我从网上找的但很好用的也是很实用的程序,12864液晶的驱动程序,希望对大家有些帮助,是基于2553的。
第一次接触单片机学习的是MSP430F2012,用这款单片机做了太阳能电池板的跟踪装置,主要是用内部的ADC检测两个光敏电阻的分压值来控制电机转动的方向,实际的测试结果非常理想,而且整机的功耗相当的低!强大的MSP430!