打印

想用msp430g2553控制sim900a进行发送短信

[复制链接]
1327|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhen416472721|  楼主 | 2015-4-20 08:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写了好几天的程序了,但是怎么调试都不成功,大神能给解决下吗??刚自学这款单片机,是不是用串口通信啊??,,,



//******************************************************************************
#include <msp430.h>
#include <stdio.h>

const char string1[] = "ATD18669665328\r";
//unsigned int i;
int a[8],i;

void Uart0Sends(char *s)
{


        while (!(IFG2&UCA0TXIFG))
        {
  while(*s!='\0')
  {
    UCA0TXBUF=*s;

    while((IFG2&UCA0TXIFG)==0); //查询发送是否结束
    IFG2&=~UCA0TXIFG; //清除发送一标志位
    s++;
  }
        }
}

void Init_uart0()
{
  UCA0CTL0&=~UC7BIT;//字符长度为8
  UCA0BR0=0x6D;  //波特率为9600


/////////////------------------------------------------------------------
  UCA0CTL1 |= UCSSEL_1;                     // CLK = ACLK
   UCA0BR1 = 0x00;                           //
   UCA0MCTL = UCBRS1 + UCBRS0;               // Modulation UCBRSx = 3
   UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
   IE2 |= UCA0TXIE;                          // Enable USCI_A0 RX interrupt
////////////---------------------------------------------------------------


   P1DIR = 0xFF;                             // All P1.x outputs
    P1OUT = 0;                                                                 // All P1.x reset
                              // All P2.x reset
  P1SEL|=BIT1+BIT2; //将P1.1 P1.2设为第二功能
  P1SEL2|=BIT1+BIT2;
}

void DelayNS(unsigned int dly)
{
  unsigned int i;
  for(;dly>0;dly--)
    for(i=0;i<2000;i++);
}

int main(void)
{
        WDTCTL = WDTPW + WDTHOLD;
          BCSCTL1 = CALBC1_1MHZ;
          DCOCTL  = CALDCO_1MHZ;
          Init_uart0();
          _EINT();

}
//#pragma vector=USCIAB0RX_VECTOR
//__interrupt void usart0_rx(void)
//{
//  while((IFG2&UCA0RXIFG )==0);
//  //a=RXBUF0;
//  //i++;
//  i=UCA0RXBUF;
////  UCA0TXBUF=UCA0RXBUF;


#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=USCIAB0TX_VECTOR
__interrupt void USCI0TX_ISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(USCIAB0TX_VECTOR))) USCI0TX_ISR (void)
#else
#error Compiler not supported!
#endif
{



            {

              Uart0Sends("AT\r");

              DelayNS(50);
              Uart0Sends("AT+CMGF=1\r");
              DelayNS(50);
              Uart0Sends("AT+CMGS=\"18669665328\"\r");
              DelayNS(100);
           Uart0Sends("DATATEST");




            }
    IE2 &= ~UCA0TXIE;                       // Disable USCI_A0 TX interrupt

}

相关帖子

沙发
dirtwillfly| | 2015-4-20 22:13 | 只看该作者
是不是串口通讯,要看你使用的sim900a支持哪种通讯,你的msp430在硬件上是怎么和sim900a连接的?

使用特权

评论回复
板凳
ccw1986| | 2015-4-21 20:16 | 只看该作者
有硬件电路图吗
光看程序不好说呢

使用特权

评论回复
地板
smilingangel| | 2015-4-22 19:57 | 只看该作者
这个程序中的关键是UART口的数据交互的处理。

使用特权

评论回复
5
angerbird| | 2015-4-22 22:42 | 只看该作者
这个是做短信测试的,复杂的话主要是需要通讯协议的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝