当前位置: 代码迷 >> Wireless >> 51单片机控制SIM300收发数据解决办法
  详细解决方案

51单片机控制SIM300收发数据解决办法

热度:6747   发布时间:2013-02-26 00:00:00.0
51单片机控制SIM300收发数据
各位高手,我想用51通过串口来控制SIM300收发数据,现在已经把SIM300模块和51实验板通过串口连接起来了,可写完程序后模块没有反应,不知道为什么,需要对模块初始化吗?我把程序贴上来麻烦大家看看有什么问题。另外我想用串口接收字符串并判断接收的是不是我想要的字符串我该怎么做,试过了几个办法都没有成功。
#include<reg52.h>
#define unchar unsigned char
#define unint unsigned int
unchar *re;
void chushihua()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SM0=0;
SM1=1;
REN=1;
EA=1;
ES=1;
PCON=0x00;
}
void send_byte(unchar c)
{
SBUF=c;
while(TI!=1);  
TI=0;
}
void send_string(unchar *str)
{
while(*str!='\0')
{
send_byte(*str++);
}
}
chuli()
{
if(re=="error")//判断收到的字符串是不是"error"(不知道这么做对不对)——!
{
send_string("ATD4302099");
send_byte(0x0d);
}
}
main()
{
  chushihua();
  send_string("ATD4302099");  
  delay();  
  send_byte(0x0d);
  chuli();
 
}
 void reveive() interrupt 4
{
  if(RI)  
  {
  *re=SBUF;
  re++;  
  RI=0;  
  }
 }

------解决方案--------------------------------------------------------
告诉你一个很好的方法:那就是去网上下一个串口调试助手,发什么收到什么 一目了然~~
------解决方案--------------------------------------------------------
只要波特率率设置正确 确定串口被打开 就应该不会有问题的

可以发 AT 两个字符过去 当然不要忘记后面加回车 即 \r~~~成功的话会返回ok

再不行那就要看你的硬件是否出问题了
------解决方案--------------------------------------------------------
这个不是无线吧,呵呵
------解决方案--------------------------------------------------------
SIM300 Serial port1的RTS线没有拉低,或者使用Serial port2。port1是七线制的,port2是2线制的。
------解决方案--------------------------------------------------------
开机后,一直等到出现 Call Ready 后,再发送ATD命令

你最好先用串口助手调试模块,再写程序,这样会比较节约调试时间
------解决方案--------------------------------------------------------
好像你初始化管脚
  相关解决方案