用IAR编程,提示Error[Pe029]: expected an expression

2019-03-24 10:17发布



Error[Pe029]: expected an expression










#include  <msp430x14x.h>



#define  uchar   unsigned char

#define  uint    unsigned int

#define  uclong  unsigned long

#define  TxRxBuf[i]

void Delays(void);

void PutString(uchar *ptr);

void InitSys(void);

void Delay(int i);

char at[]="error";

char AT[]="ok";

int count1=0;

uchar *index="AT ";

uchar *index1="ATE1 ";

uchar *index2="ATD18729569502; ";

//uchar *index1="AT+CSCS="GSM" ";

//uchar *index3="AT+CMGS"15202988972" ";

//uchar *index2="AT+CMGF=1 ";

//uchar *index4="ni hai hao ma ?";



//uchar *InitSim="AT";//SIM卡初始化

//uchar *Signal="AT+CMGF=1";

char received;//接收信息



//uchar *Signal1="AT+CSCS=GSM";

int count=0;//计数次数





/*****************************************************************************

系统初始化

******************************************************************************/

void InitSys()

{

   unsigned int iq0;

   _DINT();

   BCSCTL1 &=~XT2OFF;

   do

   {

      IFG1 &= ~OFIFG;                // 清除振荡器失效标志

  for (iq0 = 0xFF; iq0 > 0; iq0--);        // 延时,等待XT2起振

   }

   while ((IFG1 & OFIFG) != 0);                // 判断XT2是否起振               

   BCSCTL2 =SELM_2+SELS;                      //MCLK,SMCLK时钟为XT2                       

}



/********************主函数**********************/

void main(void)

{

    WDTCTL = WDTPW + WDTHOLD;                 // 关狗

   InitSys();

   P2DIR = 0XFf;                             //使能引脚P2为输出引脚

   nRF905_IO_set();

   //LED_IO_Set();

   Config905();

   nRF905_Chk(); //初始化nrf905



    P3SEL |= 0x30;                            // P3.4,5选择为UART收发端口

    ME1 |= UTXE0 + URXE0;                     // 使能USART0收发

    UCTL0 |= CHAR;                            // 8-bit character

    UTCTL0 |= SSEL1;                          // UCLK = ACLK

    UBR00 = 0x45;                             // 32k/115200 - 13.65

    UBR10 = 0x00;                             //

    UMCTL0 = 0x00;                            // Modulation 0.65*8=5.2  0110 1011

    UCTL0 &=~ SWRST;                          // 初始化UART0状态机



    IE1 |= URXIE0;                            // 使能接收中断

    _EINT();                                  //开启全部中断







    /*Delay(10000);

    Delay(10000);

     PutString(index);

    Delay(10000);

    Delay(10000);

    PutString(index1);

    Delay(10000);

    Delay(10000);

     PutString(index2);

     Delay(10000);

     Delay(10000);

     //PutString(index3);

     Delay(10000);

     Delay(10000);

      //PutString(index4);

    //PutString(InitSim);                       //发送SIM卡初始化指令

    Delays();*/



   while(1)                                  //开启循环

    {

       while (!(IFG1 & UTXIFG0)); //等待发送缓存空闲

       P2OUT=0xfc;

       switch(received)

       {

       case 'a':  

         for(int i=0;i<5;i++)

        TxRxBuf[i]=data[i];

         TX();

         for(int i=0;i<2;i++)

         {

         while (!(IFG1 & UTXIFG0));

         TXBUF0 =AT[i];                       //将接收数据放入发送缓存区

         }

         while (!(IFG1 & UTXIFG0));

         TXBUF0=' ';

         received='0';

         break;

       case 'b':

         for(int i=0;i<5;i++)

       TxRxBuf[i]=data1[i];

         TX();

         for(int i=0;i<2;i++)

         {

         while (!(IFG1 & UTXIFG0));

         TXBUF0 =AT[i];                       //将接收数据放入发送缓存区

         }

         while (!(IFG1 & UTXIFG0));

         TXBUF0=' ';

         received='0';

         break;

       case 'c':

         for(int i=0;i<5;i++)

        TxRxBuf[i]=data2[i];

         TX();

         for(int i=0;i<2;i++)

         {

         while (!(IFG1 & UTXIFG0));

         TXBUF0 =AT[i];                       //将接收数据放入发送缓存区

         }

         while (!(IFG1 & UTXIFG0));

         TXBUF0=' ';

         received='0';

         break;

       }

        Delays();                             //延时

    }

}

/*******************************************

函数名称:PutSting

功    能:向PC机发送字符串

参    数:无

返回值  :无

********************************************/

void PutString(uchar *ptr)

{

      while(*ptr != '')

      {

            while (!(IFG1 & UTXIFG0));                // TX缓存空闲?

            TXBUF0 = *ptr++;                       // 发送数据

      }



      //while (!(IFG1 & UTXIFG0));                       //等待发送缓存空闲

      //TXBUF0 = ' ';

    //  while (!(IFG1 & UTXIFG0));                       //等待发送缓存空闲

}

/*******************************************

函数名称:UART0_RXISR

功    能:UART0的接收中断服务函数,在这里唤醒

          CPU,使它退出低功耗模式

参    数:无

返回值  :无

*******************************************/

#pragma vector = UART0RX_VECTOR

__interrupt void UART0_RXISR(void)

{



        received=RXBUF0;



  LPM1_EXIT;                 //退出低功耗模式

}

/*******************************************

函数名称:Delays

功    能:延时一会

参    数:无

返回值  :无

********************************************/

void Delays(void)

{

    uint i=200;

    uint j;



    while(i--)

    {

            j=2000;

            while(j--);

    }

}

void Delay(int i)

{

  while(i--)

  for(int n=0;n<=200;n++);

}


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1条回答
数码小叶
2019-03-24 15:50
< 直接截图,看的快。。。

一周热门 更多>

相关问题

    相关文章