【发布时间】:2014-03-27 20:29:34
【问题描述】:
我写了一个代码来发送数据到串口/dev/ttyACM0。基本上,这与 GSM 调制解调器一起用于发送 SMS。在内存中设置短信并发送的AT指令是
首先我需要在串口中写入以下内容 "AT+CMGW=16\r"
然后写下面的pdu转换消息 069110090000F111000A9210299232900000AA03C8F40F 然后发送 ctrl-z
我在发送 ctrl-z 时遇到问题
说消息=“069110090000F111000A9210299232900000AA03C8F40F” 我试过了
strcat(message,"\x1A"); //Does not work
strcat(message,"\032"); //Does not work
我什至尝试过一个将 char 添加到 char* 的函数
void append(char *s,char c)
{
int len = strlen(s);
s[len] = c;
s[len+1] = '\0';
}
append(message, '\032'); //Does not work
append(message, '\x1A'); //Does not work
我需要读取端口的接收缓冲区来检查计数 示例 +CMGW:4
然后写 AT+CMSS=3\r 发送消息。
在 minicom 上键入上述 AT 命令发送 SMS。但在 C 代码中,我无法键入 ctrl-z。
有人知道怎么做吗?
任何帮助表示赞赏 谢谢
【问题讨论】:
-
它不附加到消息中还是不发送 ctrl-z?如果不发送ctrl-z,你有没有检查你是否在发送代码中短了一个字符?
-
@cup 好像是附加的。我在接收缓冲区数据的消息旁边看到一个奇怪的符号。但是一旦发送 ctrl-z 我还需要接收 +CMGW:
OK。我根本没有收到这个。我只看到上面的命令和消息旁边的一个奇怪的符号,后面什么都没有。所以我假设没有发送 ctrl-z
标签: c linux serial-port sms