Arduino怎么完整读取GSM收到的短信,我缓冲区的大小也改了,但收到的短信还是不完整?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino怎么完整读取GSM收到的短信,我缓冲区的大小也改了,但收到的短信还是不完整?相关的知识,希望对你有一定的参考价值。

#include <Arduino.h>#include <String.h>void setup() Serial.begin(9600); Set_Message();void loop() GetSMS(); Delete_message();void GetSMS() String inStr1=""; while (Serial.available()>0) char inChar1=Serial.read(); inStr1 += (char)inChar1; delay(2); while(inStr1.indexOf("+CMTI")!=-1) Read_Message(); break; void Read_Message() Serial.print("AT+CMGR=1\r\n"); delay(4000); String inString=""; while (Serial.available()>0) char inChar=Serial.read(); inString += (char)inChar; Serial.print(inChar); delay(2); if (inString.length()>0) Serial.println(inString); inString=""; Serial.flush(); void Set_Message() Serial.print("AT+CMGF=1\r\n"); Serial.print("AT+CNMI=2,1\r\n");void Delete_message() //Serial.print("AT+CMGD=1,4\r\n");

参考技术A 上arduino cn上去发个帖

Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?

【中文标题】Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?【英文标题】:Android mobile as GSM Modem to send/receive SMS on PC? 【发布时间】:2013-07-10 17:38:22 【问题描述】:

是否可以将 Android 移动设备用作 PC 的 GSM 调制解调器?

我正在.net 下开发应用程序来发送/接收短信等。 现在我想通过 USB 将我的 android 设备连接到我的 PC,并将其用作 GSM 调制解调器与之通信。

这里是Reference 站点,我正在关注该站点以为此目的创建 .NET 应用程序。

我在这里遇到了错误

 try
 
 Phone_Name.Text = comm.IdentifyDevice().Manufacturer.ToUpper().ToString();
 Phone_Model.Text = comm.IdentifyDevice().Model.ToUpper().ToString();
 Revision_Num.Text = comm.IdentifyDevice().Revision.ToUpper().ToString();
 Serial_Num.Text = comm.IdentifyDevice().SerialNumber.ToUpper().ToString();
 
catch (Exception e50)

MessageBox.Show("Error Retriving COM Port Phone Information", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
 

显示“检索 COM 端口电话信息时出错”。

是否有任何类型的驱动程序/应用程序/等来处理它?

环境:要测试的 Windows XP/Windows 7 Mobile:Q Mobile Noir A-10

【问题讨论】:

【参考方案1】:

是的,我认为你可以做到。只需安装您的手机驱动程序,然后将您的手机连接到 PC。 (通常移动包磁盘中有驱动程序。) 然后从 Windows 控制面板打开“电话和调制解调器”。 然后单击“调制解调器”选项卡。现在您可以看到所有调制解调器及其 COM 号。 在您的 .Net 应用程序中使用您的手机 COM。 如果您在“电话和调制解调器”中看不到您的手机名称作为调制解调器,则表示您不能将手机用作 GSM 调制解调器。 (对不起我的英语不好)

【讨论】:

【参考方案2】:

如果您希望使用手机进行通信,可以在手机上安装一些应用程序并将其连接到您的 PC。

但是,如果您希望使用 GSM API 向您的手机发送指令,Arma 的回答是正确的,但理论上您可以使用智能手机应用程序来控制手机 USB 并模拟/模仿 GSM 调制解调器。

【讨论】:

以上是关于Arduino怎么完整读取GSM收到的短信,我缓冲区的大小也改了,但收到的短信还是不完整?的主要内容,如果未能解决你的问题,请参考以下文章

GSM SM5100B C M E E R R O R : 4 错误

Arduino的蓝牙模块收到的信息为啥乱码

如何使用Arduino和SIM900A GPRS / GSM模块将数据发送到Web服务器

如何从 Qt5 读取串行数据

Arduino 可以从控制台读取字节,但不能从 java

关于Arduino的串口中断