liu21yd 发表于 2009-4-16 22:12:45

求助!我用AVRmega1280控制GPRS,为什么发不出短信啊?(内附相应的程序和原理图)

程序ourdev_437189.rar(文件大小:85K) (原文件名:gprs1.rar)
电路图ourdev_437190.rar(文件大小:8K) (原文件名:GPRS.rar)

模块能正常启动,指示灯也会亮。
好像串口发送的AT命令,GPRS模块接收不了,或者GPRS返回的AT命令结果,串口没收到。GPRS的AT返回值以怎样的方式返回的呢?
是不是发送一条AT命令,GPRS都会有相应的返回值呢?
我是新手,请大牛们帮帮忙吧!

我的邮箱是liu21yd@163.com

Appcat 发表于 2009-4-16 22:25:59

初略的看了一下你的代码,主要的问题是你对CVAVR产生的串口接收中断程序没能很好的理解。CVAVR产生的代码其实形成了一个环形队列作为串口接收的缓冲,这时,你不应该直接去操作这个缓冲区,即使是读也不行(环形队列的数组下标是周而复始的,你读的程序就没有),正确的做法应该是实现getchar函数,调用一次从串口缓冲区里读取一个字符,然后自己再开个自己的缓冲区,将读取的字符放进去,进行子串匹配来确定GPRS的返回。我一般都会使用C语言库函数的strstr进行字符串匹配。每次从串口缓冲区读取一行进行判断。
原则上,每发一条AT指令,以0X0D结尾或者0X0D0X0A结尾都可以,GPRS模块就会有返回的信息,具体的内容格式含义可以查看GPRS模块的AT指令手册。

liu21yd 发表于 2009-4-17 15:02:06

谢谢Appcat!

按照您说的问题,我将程序改成下面样子。但我在发送查看串口是否正常工作的AT命令,仍检测不到“OK”字段。是不是串口本身就没正常工作呢?还是程序中仍然有问题呢?
int check_return_OK(void)
{   
    int i=0;
    char *rec_buffer;
    char *OK="OK";
    while(rx_counter2 > 0)
    {
      rec_buffer=getchar();
      i=i+1;
   }      
    if(strstr(rec_buffer,OK))
         return 1;
   else
         return 0;
}
今天我用电压表测了一下GPRS模块各个引脚的电压,发现其引脚中,UART_RXD0的电压达到4V,而UART_TXD0的电压却只有1.6V。这样对吗?
而且,SIM卡的各个引脚 的电压都几乎为0V。这样的问题是不是很严重啊?

zc3909 发表于 2009-4-17 15:19:38

开机了吗?

liu21yd 发表于 2009-4-17 15:27:43

开机了,模块能正常启动,LPG 接口信号灯闪烁得很快。

Appcat 发表于 2009-4-25 14:30:21

什么GPRS模块,先确保硬件没有问题吧。重点检查SIM卡电路,SIMVCC正常要有2.8V。5V的电源容量是否足够,二极管换成1n5408的,不要用4007,在二极管后到地并联一个2200uF的电解电容。在模块的IO口上出现4V的电压太高了,已经超过模块IO的最高允许电压,要降下来,可以串电阻,也可以降低M128的供电电压。最后都弄完后想办法将模块部分直接连一个电平转换的电路到PC串口,测试一下是否正常,再用单片机操作。否则现在连问题在哪里都不清楚。

程序这样写基本可以了。

ql-dz.com 发表于 2009-4-27 18:32:01

学习一下.

renjun861214 发表于 2010-2-6 16:11:16

信猫

huangjm4944 发表于 2010-2-20 15:27:48

单片机GPRS/GSM开发套件主要用于客户开发基于8位用单片机和西门子MC39IGPRS模块的GPRS无线数据通讯终端,为那些没有GPRS开发经验的用户展示基于单片机的GPRS开发过程,开发人员只需将程序下载到单片机内即可实现GPRS拨号和数据传输。提供**源代码
联系方式:
QQ:84239629
淘宝网店:http://item.taobao.com/auction/item_detail-0db2-99f23cd9ea56dfe081c382c241646cf1.htm

jim_zeng 发表于 2010-12-8 14:41:28

相信苹果猫

yongtaoz513 发表于 2010-12-9 09:55:38

标记下以后再学

wangbin6030 发表于 2010-12-9 10:43:24

标记下以后再学

wangbin6030 发表于 2010-12-9 10:46:05

标记下以后再学

BigSea001 发表于 2011-8-2 19:58:30

正在饱受相同的折磨

hls 发表于 2012-9-8 21:02:42

{:lol:}学习一下
页: [1]
查看完整版本: 求助!我用AVRmega1280控制GPRS,为什么发不出短信啊?(内附相应的程序和原理图)