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.
本帖带你全面了解TI MSP430 LaunchPad,资料包括维克、入门文档、视频、应用案例等,欢迎大家跟帖交流。
1. LaunchPad WiKi
http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_(MSP-EXP430G2)
2. LaunchPad 入门资料,有安装软件、有例子、有GRCC使用等
3. LaunchPad Workshop (LaunchPad 线上培训)
4. MSP430 LaunchPad 超值系列开发套件
http://www.ti.com.cn/tool/cn/msp-exp430g2
5. MSP430 LaunchPad 培训视频
...
john lu 说:感谢TI的资料分享,视频前1-7集无法显示,所以无法进入学习,望TI可以提供一个链接可以看前7集视频资料,谢谢。
您好,我这边1-7集显示正常啊,如果不能显示请尝试刷新页面,谢谢!如果仍然不能观看,请至focus.ti.com/.../Portal.tsp,在搜索框输入LaunchPad观看该系列视频。
楼主你好,我的项目需要让msp430g2231输出2路15KHZ的PWM信号,其中一路相位固定,另一路相位可调,改变相位是通过更新CCR1来实现。调试中当更新CCR1后经常出现PWM信号多移相了180度。敬盼赐教。代码附后:
void main(void)
{ WDTCTL = WDTPW +WDTHOLD;
for (i = 0; i < 0xfffe; i++);
P1OUT = 0x00;
j = 0;
Set_DCO(DELTA_16MHZ);
CAL_DATA[j++] = DCOCTL;
CAL_DATA[j++] = BCSCTL1;
P1SEL |= 0x16;
P1DIR |= 0x16;
CCTL0 = OUTMOD_4;
CCTL1 = OUTMOD_4 ;
CCR0 = 512-1;
CCR1 = 398;
TACTL = TASSEL_2 + MC_1 ;
while(1)
{ for(j=0;j<400;j++)
{
do{if(TACCTL0&&CCIFG)break;} while(1);
setbit(TACCTL0,CCIFG);
CCR1 = j;
Delay(50000);
}
for(j=400;j>100;j--)
{
do{if(TACCTL0&&CCIFG)break;} while(1);
setbit(TACCTL0,CCIFG);
CCR1 = j;
Delay(50000);
}
}
}
Set_DCO()引用TI 例程
|
刚入手launchpad,还算不贵,现在大一 学习1单片机已经半年了 又学习了avr单片机。通过师兄介绍认识了430,他的低功耗深深的吸引了我,因为我想搞物联网方向 所以单片机的功耗问题一直是一个首要解决的问题。也通过学习430能将自己的编程水平提升一个层次。
本帖带你全面了解TI MSP430 LaunchPad,资料包括维克、入门文档、视频、应用案例等,欢迎大家跟帖交流。
1. LaunchPad WiKi
http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_(MSP-EXP430G2)
2. LaunchPad 入门资料,有安装软件、有例子、有GRCC使用等
3. LaunchPad Workshop (LaunchPad 线上培训)
4. MSP430 LaunchPad 超值系列开发套件
http://www.ti.com.cn/tool/cn/msp-exp430g2
5. MSP430 LaunchPad 培训视频
...
#include<msp430g2553.h>
unsigned char rev; //储存接收的数据
void delay(unsigned int z)
{
unsigned int i,j;
for(i=z;i>0;i--)
for(j=115;j>0;j--);
}
char *string1 = "Helloworld!";
char string2[]="Get it!\n";
void Clock_init(void)
{
DCOCTL = CALDCO_1MHZ;
BCSCTL1 = CALBC1_1MHZ;
}
void send_char(unsigned char c) //发送函数
{
while (!(IFG2&UCA0TXIFG)); //等待发送缓存为空
UCA0TXBUF = c; //把C发出去
P1OUT ^= BIT0;
}
void send_str(char *s) //发送一个字符串
{
while((*s)!='\0')
{
send_char(*s);
s++;
}
}
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
Clock_init();
P1SEL |= 0x16; //0001 0111
P1SEL2 |= 0x06; //设置P1.1=RXD,P1.2=TXD
P1DIR = 0x65;
// P1OUT &=~BIT0;
//UCA0CTL0 = UCMSB;
UCA0CTL1 |= UCSSEL_3 ;//选择时钟为SMCLK
UCA0BR0 = 104; //1Mhz 波特率9600 UCBRX=104
UCA0BR1 = 0;
UCA0MCTL |= UCBRS_1; //UCBRSX=1
UCA0STAT = UCLISTEN;
UCA0CTL1 &=~UCSWRST;
IE2 = UCA0RXIE; //开启接收中断
_EINT();
while(1)
{
send_char(0x00);
delay(1000);
send_char(0x01);
delay(1000);
send_char(0x40);
delay(1000);
send_char(0x41);
delay(1000);
}
}
#pragma vector = USCIAB0RX_VECTOR
__interrupt void receive(void)
{
unsigned char data;
data = UCA0RXBUF;
P1OUT = data;
}
这个程序我实现了g2553的串口自发自收,我改了两天也没有实现上位机,我想把收到的数据再发出去,怎么办啊?