野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10051|回复: 9

求助 gsm模块关于连续拨打多个号码的问题

[复制链接]
发表于 2016-8-12 18:13:35 | 显示全部楼层 |阅读模式
今天在使用gsm模块进行拨打电话加TTS语音的时候,遇到了一些问题,不知道论坛中有哪位大神知道是什么原因
接通电话,播放语音,语音为播放完,挂断电话,再次拨打其他电话,模块返回
NO DIALTONE

Call Ready

SMS Ready
代码如下
/*code*/
while(1)
        {
                delay_ms(50);
                if(USART3_RX_STA&0X8000)                //½óêÕμ½êy¾Y
                {
                        delay_ms(50);
                        if(cmode==1)
                        {
                                sim_at_response(0);
                                if(sim800c_check_cmd("+COLP:"))                                                                                        //2|oÅ3é1|               
                                {
                                        sim_at_response(0);
                                        //delay_sec(1);
                                        cmode=2;
                                        printf("2|oÅ3é1| colp\r\n");
                                        sim800c_get_time(start_call);
                                }
                                if(sim800c_check_cmd("NO CARRIER"))                                                                        //2|oÅ꧰ü
                                        cmode=3;
                                if(sim800c_check_cmd("BUSY"))       
                                {                                        //2|oÅ꧰ü
                                        printf("1ò¶Ï busy\r\n");
                                        cmode=3;
                                }
                                if(sim800c_check_cmd("NO ANSWER"))
                                {       
                                        printf("no answer\r\n");
                                        //2|oÅ꧰ü
                                        cmode=6;
                                }
                                if(sim800c_check_cmd("ERROR"))                                                                                //2|oÅ꧰ü
                                        cmode=7;
                        }
                        if(cmode==4)
                        {

                                if(sim800c_check_cmd("+CTTS:"))                                                                                        //Îı¾2¥·Å½áêø
                                        cmode=5;
                                if(sim800c_check_cmd("NO CARRIER"))                                                                        //óû§1ò¶Ï
                                        cmode=5;
                        }
                        USART3_RX_STA=0;
                }
                if(cmode==0)//2|oÅÄ£ê½
                {               
                        p1=mymalloc(SRAMIN,20);
                        printf("ATD atd\r\n");
                        sprintf(p1,"ATD%s;",phoneNum);
//                        u3_printf("ATD%s;\r\n",phoneNum);//2|oÅ
                        sim800c_send_cmd(p1,"",200);
                        myfree(SRAMIN,p1);
                        delay_ms(100);
//                        sim_at_response(0);
                        delay_ms(100);
                        printf("ATD test\r\n");
                        cmode=1;                                                //2|oÅÖDÄ£ê½
                }
                if(cmode==2)
                {
                        //delay_sec(1);                                                                                        //½óí¨¼¸Ãëoó¿aê¼2¥·Åóïòô
                        printf("AT+CTTS\r\n");
                        p=mymalloc(SRAMIN,500);                                                //éêÇë500¸ö×Ö½úμÄÄú′æ
                        sprintf((char*)p,"AT+CTTS=2,\"%s\"",text);
                        printf("%s\r\n",p);
                        sim800c_send_cmd(p,"OK",100);
                        delay_ms(100);
                        myfree(SRAMIN,p);
                        sim_at_response(0);
                        cmode=4;
                }
                if(cmode==5||cmode==3||cmode==6 ||cmode==7)
                {

                        if(cmode==3 || cmode==6 ||cmode==7)
                                break;
                       
                        sim800c_send_cmd("ATH","OK",200);//1ò»ú
                                break;
                }
        }



/*code*/
回复

使用道具 举报

发表于 2016-8-12 18:40:58 | 显示全部楼层
TTS语音是什么,没有用过这功能
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-12 21:03:18 | 显示全部楼层
TTS就是把文字转换为语音
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-12 21:13:04 | 显示全部楼层
flyleaf 发表于 2016-8-12 18:40
TTS语音是什么,没有用过这功能

火哥,你帮我看下我程序里面的流程是不是有什么问题啊?就是在我主动挂断的情况下,是可以继续打电话的,但是在对方挂断的情况下就会出现我说的那种情况
回复 支持 反对

使用道具 举报

发表于 2016-8-13 08:39:57 | 显示全部楼层
fangke1989 发表于 2016-8-12 21:13
火哥,你帮我看下我程序里面的流程是不是有什么问题啊?就是在我主动挂断的情况下,是可以继续打电话的, ...

对方挂断你也发送一个自己挂断的命令,再继续打
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-13 09:10:43 | 显示全部楼层
flyleaf 发表于 2016-8-13 08:39
对方挂断你也发送一个自己挂断的命令,再继续打

我去试试
回复 支持 反对

使用道具 举报

发表于 2016-8-13 14:39:53 | 显示全部楼层
我的SIM900A发送AT+CTTS? 返回ERROR好像是不支持TTS这个功能   请问SIM800A都支持吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-13 20:22:11 | 显示全部楼层
zz8289567 发表于 2016-8-13 14:39
我的SIM900A发送AT+CTTS? 返回ERROR好像是不支持TTS这个功能   请问SIM800A都支持吗

这个我不知道呢,我用的是800c,不过800a好像是可以的
回复 支持 反对

使用道具 举报

发表于 2016-8-13 22:33:28 | 显示全部楼层
是对方接听我们合成的TTS是吗   还是我们模块这边听到的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-15 16:52:07 | 显示全部楼层
zz8289567 发表于 2016-8-13 22:33
是对方接听我们合成的TTS是吗   还是我们模块这边听到的?

这个是可以设置的,如果你要使用本地的话,你必须要有相应的东西,比如说耳机之类的才行
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-22 15:10 , Processed in 0.053057 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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