430不能驱动SIM900A

2019-07-15 15:19发布

我用430的串口接上原子大哥的GPRS模块,数据传送接收好像有问题?我不明白是怎么回事,请原子大哥指点下,
完全是用的串口的写法,以为是写的不对,于是向上位机的串口调试助手上发送,这段程序向串口发送的是AT回车,
不知道这样给GPRS发送是不是格式不对呀,它一点回应也没有,430完全收不到

#include <msp430x14x.h>

typedef unsigned char uchar;
typedef unsigned int uint;

uchar len,Temp[40],txbuf[40];
void InitUart();
void PutString(uchar *ptr);
void sendata(uchar *Sbuf,uchar Slen)
{
  Slen=0;
  Sbuf[0]='A';
  Sbuf[1]='T';
  Sbuf[2]=13;
  Slen+=3;
}
main()
{
  P1DIR=0xFF1OUT=0xff;
  P2DIR=0xff2OUT=0xff;
  P3DIR=0xff3OUT=0xff;
  P4DIR=0xff4OUT=0xff;
  P5DIR=0xff5OUT=0xff;
  P6DIR=0xff6OUT=0xff;
  
  WDTCTL=WDTPW+WDTHOLD;
  BCSCTL1&=~XT2OFF;
  BCSCTL2=SELM_2+SELS;
  do
  {
    IFG1&=~OFIFG;
    for(uchar i=0xff;i>0;i--);
  }while(IFG1&OFIFG);
  
  InitUart();
  sendata(txbuf,len);
  PutString(txbuf);
  while(1)
  {
    IFG1|=URXIFG0;
    if(IFG1&URXIFG0)
    {
      if(len>30)len=0;
      Temp[len++]=RXBUF0;
    }
  }
}
/*
初始化串口,波特率为9600,数据传输8位
*/
void InitUart()
{
  P3SEL|=0x30;
  ME1 |= URXE0+UTXE0;
  UCTL0|=CHAR;
  UTCTL0|=SSEL0;
  UBR00=0x03;
  UBR10=0x00;
  UMCTL0=0x4A;
  UCTL0&=~SWRST;
}
/*
向串口发送数据
*/
void PutString(uchar *ptr)
{
  while(*ptr !='')
  {
    while(!(IFG1&UTXIFG0));
    TXBUF0=*ptr++;
  }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
jiyuyin
1楼-- · 2019-07-15 16:25
AT后面跟
huhuiyun
2楼-- · 2019-07-15 17:41
对了,要发 ,对应内码是0X0D,0X0A.
opqooq
3楼-- · 2019-07-15 19:44
回复【5楼】发烧友:
--------------------------------
试了,不行,而且430的电流还上去了,一会拍几张照片,原子哥给看下是什么问题
话说这里面怎么上传照片啊

整体  SIM900A与430用串口连接的,分别供电,电平不批配的问题也想过,但是又感觉经过串口之后电平应该是一样的,是不是这里理解错了

电流表的值 量程500MA的是接的430,量程200MA的接的是SIM900A
lucas_songlea
4楼-- · 2019-07-15 21:06
 精彩回答 2  元偷偷看……
eehaoran
5楼-- · 2019-07-16 01:50
回复【7楼】as564335sa:
--------------------------------
是得好好找找
7u23jfwe
6楼-- · 2019-07-16 02:44
电流表好有喜感.
建议先做回环实验测试下,比如短接SIM900A模块的 RTXD和RRXD,这样,430发过来什么就应该自己收到什么

一周热门 更多>