【问题标题】:Raspberry Pi, C and Modems树莓派、C 和调制解调器
【发布时间】:2021-10-23 06:41:08
【问题描述】:

我有一个带有 SIM7600X 调制解调器的 Raspberry Pi 4,通过 USB 连接。我正在用 C 编写一个程序,我需要检查移动网络的信号质量,并连接到互联网。在 Minicom 和 Cutecom 中一切正常,但我无法让它通过 C 可靠地与调制解调器通信。这是我的代码示例

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>


int main()
{
    FILE *modem;
    int exitflag=0;
    char buf[256];
    char *line;
    int res;
    
    modem = fopen("/dev/ttyUSB2", "r+b");
    if (modem == NULL) {
        fprintf(stderr, "Unable to open modem\n");
        return(-1);
    }

    res = fputs("\n\nAT+CSQ\n", modem);
    if (res < 0) 
    {
        fprintf(stderr, "failed to send to modem (res = %d)\n",res);
        fclose(modem);
        return(-1);
    }
    exitflag=0;
    while (exitflag==0)
    {
        line = fgets(buf, 256, modem);
        if (line >= 0)
        {
            fprintf(stderr,"%s",buf);
        }
        else
        {
            exitflag=1;
            fprintf(stderr,"nothing\n");
        }
    }
    fclose(modem);
    return(0);
}

输出结果可能是这样的。

AT+CSQ


+CSQ: 23,99



OK

AT+CS


ERROR

AT+CS


ERROR

AT+CS


ERROR

AT+CS


ERROR

AT+CS



ERROR

AT+CS



ERROR

AT+CS



ERROR

AT+CS

【问题讨论】:

  • 试试fputs("AT+CSQ\r", modem);,而不是fputs("\n\nAT+CSQ\n", modem);,然后回来找我们。
  • 在串行终端(即/dev/ttyUSB2)上使用文件操作(fopen()fgets()) >) 并不理想。当您没有 open() 终端并且没有 tc[gs]etattr() 的文件描述符时,您将如何配置串行终端? “输出结果可能是这样的......” -- 发布的代码与发布的输出不匹配。

标签: c usb modem pi


【解决方案1】:

大多数调制解调器需要\r 而不是\n

【讨论】:

  • 这是不正确的。实际上每个调制解调器都要求(根据 ETSII 规范)命令以\r 终止。将\n 解释为命令终止符的任何解释都不符合标准。对我来说听起来很奇怪的是,这个错误(应该导致无人回答)不应该导致最后一个字符被删减。
  • @RobertoCaboni 是的,你是对的。简单的建议,因为我在 windows 命令行程序开发的中间 ("\r\n")。已修改
【解决方案2】:

更新 Waveshare 对此并没有多大用处。查看他们的代码是指“SIM7600AT-COMMAND”,我认为它与 atinout 相同,但会在我的 Pi 上未安装的 makefile 中查找库。 所以,我回到 QMICLI 来获取信息并连接到互联网。它会冻结的原因是因为我认为我没有足够大的电源(5v @ 4a),但无论如何我必须建立一个新的 24v 到 5v 连接以供最终使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 2013-11-05
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多