16回答

0收藏

[求助] MSP430烧写错误 问题已经解决

回答|共 16 个

倒序浏览

11#

litiejun0006

发表于 2014-1-14 10:42:17 | 只看该作者

分享到:
huixianfxt 发表于 2014-1-14 10:38
程序贴上来!没换芯片的话是2553呢.........



#include <MSP430x24x.h>
#define uchar unsigned char
#define uint unsigned int

#define LCK_SET  P1OUT|=0x10
#define LCK_CLR  P1OUT&=~0x10
const int disply[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};


void delayms(uint t)
{
    uint i;
    while(t--)
      for(i=5000;i>0;i--);//进过参数的调整 1330
}
void SPI_Init()
{
  P3SEL |= 0x11;                            // P3.0,4 USCI_A0 option select
  UCA0CTL0 |= UCCKPH + UCMSB + UCMST + UCSYNC;  // 3-pin, 8-bit SPI master
  UCA0CTL1 |= UCSSEL_2;                     // SMCLK
  UCA0BR0 |= 0x02;
  UCA0BR1 = 0;
  UCA0MCTL = 0;
  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
}

void SendSpi(uchar Data)
{
       LCK_CLR;
       //delayms(10);
       UCA0TXBUF = Data;
       while (!(IFG2 & UCA0TXIFG));
       LCK_SET;
       delayms(10);
}


void main(void)
{
    WDTCTL=WDTPW + WDTHOLD; // 关闭看门狗
    SPI_Init();
    P1SEL=0;            // 设置为普通I/O 口
    P1DIR=0x3E;            // 设置方向
    P1OUT=0xFF;        // 设置初始值
    int i=0;
    while(1)
    {
      if((P1IN&0x01) == 0)
      {
        while(!(P1IN&0x01));
        if(i>8)
          i=0;
        else
          i++;
          SendSpi(disply);
      }
    }
}

这程序我用proteus 都仿真过
12#

huixianfxt

发表于 2014-1-14 14:35:21 | 只看该作者

litiejun 发表于 2014-1-14 10:42
#include
#define uchar unsigned char
#define uint unsigned int

你这芯片应该用的是MSP430F249啊!怎么选的是MSP430G2452啊?型号不对肯定不行了!两款芯片差别很大呢........
13#

litiejun0006

发表于 2014-1-14 14:41:25 | 只看该作者

huixianfxt 发表于 2014-1-14 14:35
你这芯片应该用的是MSP430F249啊!怎么选的是MSP430G2452啊?型号不对肯定不行了!两款芯片差别很大呢... ...

#include "io430.h"
int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  
  P1DIR |= 0x01;                            // Set P1.0 to output direction
  while(1)
  {
    volatile unsigned int i;
    P1OUT ^= 0x01;                          // Toggle P1.0 using exclusive-OR
    i = 50000;                              // Delay
    while (i--);
  }
}


这个程序呢
14#

litiejun0006

发表于 2014-1-14 14:42:39 | 只看该作者

huixianfxt 发表于 2014-1-14 14:35
你这芯片应该用的是MSP430F249啊!怎么选的是MSP430G2452啊?型号不对肯定不行了!两款芯片差别很大呢... ...

我的芯片是MSP430G2452  程序是我之前     proteus  仿真正确的程序
15#

litiejun0006

发表于 2014-1-14 14:52:05 | 只看该作者

huixianfxt 发表于 2014-1-14 14:35
你这芯片应该用的是MSP430F249啊!怎么选的是MSP430G2452啊?型号不对肯定不行了!两款芯片差别很大呢... ...

如您所说的  确实是芯片选错   我重新建一个工程就ok啦 谢谢
16#

huixianfxt

发表于 2014-1-14 15:56:22 | 只看该作者

litiejun 发表于 2014-1-14 14:42
我的芯片是MSP430G2452  程序是我之前     proteus  仿真正确的程序

你一说Proteus我知道了!因为我知道那上面有MSP430F249没有G2452的呢..........
17#

litiejun0006

发表于 2014-1-14 16:11:43 | 只看该作者

huixianfxt 发表于 2014-1-14 15:56
你一说Proteus我知道了!因为我知道那上面有MSP430F249没有G2452的呢..........

恩  谢谢哈  我以为在option改成2452就可以了呢
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条