首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将ctrl-z发送到C中的串口(GSM SMS)

将ctrl-z发送到C中的串口(GSM SMS)
EN

Stack Overflow用户
提问于 2014-03-13 14:02:30
回答 1查看 4.4K关注 0票数 1

我编写了一个代码将数据发送到串口/dev/ttyACM0。基本上,这是用来与GSM调制解调器发送短信。在内存中设置sms并发送它的AT命令是

首先,我需要用串行端口"AT+CMGW=16\r“写以下内容

然后编写以下pdu转换的消息069110090000F111000A9210299232900000AA03C8F40F,然后发送ctrl-z

我对发送ctrl-z有异议

假设message = "069110090000F111000A9210299232900000AA03C8F40F“我试过了

代码语言:javascript
运行
复制
strcat(message,"\x1A"); //Does not work
strcat(message,"\032"); //Does not work

我甚至尝试过在char中添加char*的函数。

代码语言:javascript
运行
复制
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命令发送短信。但是在C代码中,我不能输入ctrl。

有人知道怎么做吗?

任何帮助都是非常感谢的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-18 09:11:42

那是我的错。我概括了发送到串口的数据的大小。我认为,由于定义的发送大小更大,所以ctrl十六进制值0x1A后面的值是垃圾值。因此,我的命令无法将sms保存在内存中,因为它不知道0x1A下面的值。为了解决这个问题,我使用strlen将char *发送到串口的实际大小。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22381008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档