搜索
bottom↓
回复: 2

msp430f149控制sim300 gprs模块发短信问题

[复制链接]

出0入0汤圆

发表于 2012-4-8 13:58:43 | 显示全部楼层 |阅读模式
       最近在调试msp430f149控制sim300 gprs模块发短信,调了很长时间了,总是有问题。发送了几次,手机能接收到,但是接收到的是□@123,后来就再没发送成功过,不知道什么问题,请各位高手帮忙看看,很着急,谢谢了!!程序如下:
#include  <msp430x14x.h>
#include  "cry1602.h"

#define uchar unsigned char
#define uint  unsigned int


uchar AT_F[]={"AT&F\r\n"};      //模块初始化
uchar AT_AT[]={"AT\r\n"};                     
uchar AT_ATE[]={"ATE0\r\n"};   
uchar AT_Save[]={"AT&W\r\n"};   
uchar AT_CMGF[]={"AT+CMGF=1\r\n"};   //指定信息的输入输出格式为文本格式
uchar AT_CSCS[]={"AT+CSCS=\"GSM\"\r\n"};   
uchar AT_CSCA[]={"AT+CSCA=\"+8613800290500\"\r\n"};  
uchar AT_CSMP[]={"AT+CSMP=17,167,0,241\r\n"};   
uchar AT_CMGS[]={"AT+CMGS=\"133*****360\"\r\n"};   
uchar AT_DQML[]={"AT+CMGR=1\r\n"};                   
uchar AT_SCML[]={"AT+CMGD=1\r\n"};                   
uchar AT_ATF[]={"AT&F\r\n"};                        

uchar send_text[] = {"123\r\n"};            

uchar rec[120];
uchar m=0;
uchar n=0;   

void delay1(uint a);
void SEND_GPRS_CMD(uchar a,uchar b[]);
int REC_CMD0(void);
int REC_CMD1(void);
void CONNECT_GPRS(void);
void Arry_Init(uchar *str);

void delay1(uint a)
{
   uchar j;
   while(a--)
   {
     for(j=250;j>0;j--){}
   }
}

void SEND_GPRS_CMD(uchar a,uchar b[])          //发送命令子程序
{
   uchar co;
   co=0;
   do
   {
     Send1Char(b[co]);
     co++;
     if(co==a) break;
   }while(1);  
}

int REC_CMD0(void)                          //接受"OK"子程序
{
  uint j,k;
  j=0;
         for(k=0;k<120;k++)
        {
          if((rec[k]!='O')&&(rec[i]=='K'))
           {
             j=1;
             Arry_Init(rec);
             m=0;
             break;
           }
        }
  return(j);
}

int REC_CMD1(void)                          //接受">"子程序
{
  uint j,k;
  j=0;
  
       for(k=0;k<120;k++)
        {
          if((rec[k]=='>'))
           {
             j=1;
             m=0;
             Arry_Init(rec);
             break;
           }
        }
  return(j);
}


void CONNECT_GPRS(void)           //*************GPRS连接*****************8
{
  SEND_GPRS_CMD(sizeof(AT_F),AT_F);          //发送AT&F
  do
  {
    if(REC_CMD0()) break;
  }while(1);
  SEND_GPRS_CMD(sizeof(AT_AT),AT_AT);          //发送AT
  do
  {
    if(REC_CMD0()) break;
  }while(1);
  //Disp1Char(1,0,'2');
  SEND_GPRS_CMD(sizeof(AT_ATE),AT_ATE);     //发送AT+ATE0
  do
  {
    if(REC_CMD0()) break;
  }while(1);
  //Disp1Char(1,0,'3');
  SEND_GPRS_CMD(sizeof(AT_CMGF),AT_CMGF);  //发送AT+CMGF
  do
  {
    if(REC_CMD0()) break;
  }while(1);
//Disp1Char(1,0,'4');
  SEND_GPRS_CMD(sizeof(AT_CSCS),AT_CSCS);      //发送AT+CSCS
  do
  {
    if(REC_CMD0()) break;
  }while(1);
  //Disp1Char(1,0,'5');
  SEND_GPRS_CMD(sizeof(AT_CSCA),AT_CSCA);  //发送AT+CSCA
  do
  {
    if(REC_CMD0()) break;
  }while(1);
  //Disp1Char(1,0,'6');
  SEND_GPRS_CMD(sizeof(AT_CSMP),AT_CSMP);  //发送AT+CSMP
  do
  {
    if(REC_CMD0()) break;
  }while(1);
  //Disp1Char(1,0,'7');
  SEND_GPRS_CMD(sizeof(AT_Save),AT_Save);  //发送AT&W
  do
  {
    if(REC_CMD0()) break;
  }while(1);
  //Disp1Char(1,0,'8');
  SEND_GPRS_CMD(sizeof(AT_CMGS),AT_CMGS);  //发送AT+CMGS
  do
  {
    if(REC_CMD1()) break;
  }while(1);
  //Disp1Char(1,0,'9');
  SEND_GPRS_CMD(sizeof(send_text),send_text);
  /*Disp1Char(1,0,'1');
  Disp1Char(2,0,'0');*/

  while((IFG1 & UTXIFG0)==0)
    TXBUF0=0x1A;
  Disp1Char(1,0,'1');
  Disp1Char(2,0,'1');
}

//初始化数组
void Arry_Init(uchar *str)
{

    uint i;
    for(i=0;i<120;i++)
    {
        str[i]='0';
    }

}

void main(void)
{
  WDTCTL=WDTPW+WDTHOLD;
  
  LcdReset();
  LcdWriteCommand(0x01, 1);
  InitUART();              //初始化串口
  Arry_Init(rec);
  _EINT();

    CONNECT_GPRS();
    /*_NOP();
    _NOP();*/
}

#pragma vector=UART0RX_VECTOR                          //串口接收中断子函数
__interrupt void usart0_rx(void)
{
    rec[m++]=Get1Char();
    if(m==120)
      m=0;
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2012-4-8 15:42:41 | 显示全部楼层
在线等啊在线等~~~请各位高手帮帮忙吧~~~

出0入0汤圆

发表于 2012-5-28 00:36:58 | 显示全部楼层
本帖最后由 joeleowang 于 2012-5-28 00:39 编辑

MARK^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
问题解决了没,我最近也在搞MC55GPRS通信,我也是用的149,请问一下,您MCU和通信模块硬件是如何连接的啊?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 08:34

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表