GSM模块sim800c收发信息拨打电话异常

sim800模块拨打电话,单独测试可以拨打,但是与单片机连接就拨打不了了

img


led_start用于测试,目前灯时能够正常亮,说明已经执行过那个拨打电话的那句,而且串口收发信息是正常的,但是手机实际没有接到电话,但是在单独调试sim800c时,用串口调试,是能够正常拨打电话的。不知道是哪里出了问题,大家能不能帮忙看一下。

线脚都连接正确了吗

调试下你的数据发出的格式,以及返回的情况。

把与gsm模块串口的收发数据打印出来,在根据打印的日志和串口调试助手的日志对比就能缩小问题范围了。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
这种问题很可能是由于单片机和GSM模块之间的通信出现了问题,导致GSM模块不能正常执行拨打电话操作。

首先,建议检查单片机和GSM模块之间的连线是否正确,包括电源和通信线路。如果存在问题,需要重新调整连线。

其次,建议检查GSM模块的SIM卡是否正确插入,是否有信号覆盖,是否有其他异常情况。

另外,查看以下代码是否存在问题:

void led_start(void)
{
    gpio_set_pin_level(LED, true);
    if (GSM_Call("XXXXXXXXXX", 0)) 
    {
        printf("Calling...\r\n");
        while (!is_Calling(false)) 
        {
            if (is_HangOn(false)) 
            {
                printf("HangOn\r\n");
                break;
            }
            DELAY_MS(10);
        }
    }
    else
    {
        printf("Call failed...\r\n");
    }
    gpio_set_pin_level(LED, false);
}

注释中的"XXXXXXXXXX"是拨打的电话号码,如果存在问题可以考虑更换为正确的电话号码。

如果以上方法依然无法解决问题,建议将GSM模块的操作分步进行,逐步排查问题。具体操作步骤如下:

1、先测试GSM模块是否正常工作,可以使用串口通信进行 AT 命令测试。

2、确认 GPRS 是否能够正常使用,在数据传输之前,必须先连上移动网络。

3、测试短信发送和接收功能,确保 SIM 卡是否正常工作。

4、测试电话拨打功能,检查与之相关的硬件是否正常。

5、最后将以上功能进行整合,检查是否存在一些奇怪的问题。

希望以上方法对你有帮助。
如果我的回答解决了您的问题,请采纳!

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^