我正在使用带有Texas Instrument Launchpad 的SIM800L模块,带有MSP430G2553微控制器,不使用SIM800L的外部库.
问题陈述: 发送简单文本消息(带文本模式的SMS),在手机上作为空白消息接收.
SIM详情:
1. SIM 1:地点:印度.运营商:AirTel,4G兼容SIM卡.
 2. SIM 2:地点:印度.运营商:Tata Docomo,3G兼容SIM卡.
我所知道的:
<CR><LF>OK<CR><LF>对于大多数命令,我读取响应并且仅在收到肯定确认时继续.我读过的内容:
通过非官方消息来源(当然是论坛)的一些猜测认为SIM800L只有2G兼容.
(维基百科的浅读)我已阅读GSM 3.38和GSM 3.40,以及数据编码方案部分,了解如何在适合/相关的AT命令(AT + CSMP)中处理文本编码.
各种论坛,包括用于非常普遍使用SIM800L模块的arduino的论坛.
Stackoverflow上的相关文章:
第一个答案似乎对他有用,但对我来说不起作用.
我试过了什么:
我使用了与Docklight串行终端实例相同的模块.从我的手机收到从Docklight发送的短信,并按预期显示,而不是空白.
在第0天,在将模块与Launchpad硬件集成之前,我已经使用SIM800L的预期响应的精确副本测试了整个固件状态机.
除了一些初始配置之外,两张SIM卡的结果都是相同的,但是在我发起任何与SMS相关的任务之前,我在其中加载了一组典型的配置.
我使用的典型值是:
串口失败组合:(SIM 1和SIM 2)
串口成功组合:(SIM 1和SIM 2) …
据我所知,“at+sapbr”用于建立HTTP或FTP连接,而“at+cstt”、“at+ciicr”等仅用于TCP连接。
然而,据我了解,HTTP/FTP只是TCP协议之上的一层。为什么 SIM800 不使用“at+sapbr”来执行所有操作?SIM800建立连接的方式有什么不同吗?
我在谷歌上尝试了不同的搜索,但找不到明确的答案。
我想我在代码中遗漏了一些东西。
下面是我在 C# 中的代码
public Form1()
    {
        InitializeComponent();
        serialPort1.PortName = "COM2";
        serialPort1.BaudRate = 9600;
        serialPort1.Parity = Parity.None;
        serialPort1.DataBits = 8;
        serialPort1.StopBits = StopBits.One;
        serialPort1.Handshake = Handshake.RequestToSend;
        serialPort1.DtrEnable = true;
        serialPort1.RtsEnable = true;
        serialPort1.NewLine = System.Environment.NewLine;
    }
    private void btnSend_Click(object sender, EventArgs e)
    {
        serialPort1.Open();
    }
    private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
    {
        try
        {                
            string num = "+639952006630\n";
            serialPort1.Write(num);        
            string message = "Your child arrived at our school at " + DateTime.Now + ".";
            serialPort1.Write(message);                
        }
        catch (Exception ex)
        { …Run Code Online (Sandbox Code Playgroud) 我有这个 USB 转 GSM 串行 GPRS-SIM800C 模块,我已经成功地能够向它发送 AT 命令并执行一些操作,但我真正想要的是文本转语音功能,我能够生成 AMR 音频文件,上传到模块内存,有人来电就播放。
但是来电者听到的消息将是动态的,并且 TTS 将实时运行,因此将音频文件上传到模块的过程会导致不良的延迟,有什么方法可以通过模块传输一些音频吗?
谢谢。
我的问题与 SIM800 连接消息有关。
我使用的是STM32开发板的模块。有时模块会分别报告SMS Ready和Call Ready消息。当我开始向模块发送 AT 命令时,它可能会发送这些消息(并非每次都会发生)。
然而,我之前发送的命令显然是不相关的(例如 HTTP 命令),并且SMS Ready / Call Ready消息在意想不到的情况下即将到来。
因此,Keil"Can not access"在调试会话中报告消息。是否可以在建立连接时禁用这些消息?或者这意味着模块意外重置?
我使用 SIM800L 模块和 Arduino Uno 与网络服务器进行通信。我有一个 Arduino 读取的传感器。我想将传感器的值存储到我的数据库中。
在我的 Web 服务器上,我有一个 PHP 页面,用于将数据保存到数据库中。我正在使用这样的 GET 方法:http://www.isj.ir/Samples/sample.php?sen1=27.2。
我正在将这个库用于 SIM800L。
但在这个例子中我无法传递传感器的值。我很困惑!您能帮帮我并告诉我该怎么办吗?
sprintf(body, "{\"name\": \"%s\"}", "Arduino");
result = http.post("isj.ir/Samples", body, response);
Serial.println(body);
print(F("HTTP POST: "), result);
if (result == SUCCESS) {
    Serial.println(response);
    StaticJsonBuffer<32> jsonBuffer;
    JsonObject& root = jsonBuffer.parseObject(response);
    lastRunTime = millis();
    waitForRunTime = root["waitForRunTime"];
    print(F("Last run time: "), lastRunTime);
    print(F("Next post in: "), waitForRunTime);
}
result = http.get("isj.ir/Samples", response);
print(F("HTTP GET: "), result);
if (result == SUCCESS) {
    Serial.println(response);
    StaticJsonBuffer<32> …Run Code Online (Sandbox Code Playgroud) 我正在尝试UART使用STM32F407V6T6和CubeMx.
因为我已经发布了一些strstr()功能问题.这是一些新问题.
这是代码:
char rxBuff[10];
int main(void)
{
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_USART2_UART_Init();
  Green_Blink(100);
  Orange_Blink(100);
  Blue_Blink(100);
  Red_Blink(100);
  while (1)
  {
        HAL_UART_Transmit_IT(&huart2,(uint8_t*)"hello\r\n",10);
        HAL_Delay(1000);
        Orange_Blink(100);
        if (strstr(rxBuff,"hi"))
        {
        }
   }
}
Run Code Online (Sandbox Code Playgroud)
这里我正在做的是我正在hello\r\n使用发送中断进行传输.发射后,我检查了像某些值hi在rxBuff[10].
在这个特定的代码中,我没有收到任何我刚创建缓冲区并检查它是否包含的内容hi.
请注意,在传输时我只发送7个字节的数据.但是在HAL_UART_Transmit_IT()大小的地方,我给了10.
HAL_UART_Transmit_IT(&huart2,(uint8_t*)"hello\r\n",10); 
将此代码刷新到我的stm32后,我可以在终端中看到各种输出
你好\ r\NHI
如果我将txt hi改为其他类似行星的东西,那么输出就像
你好\ r\NPL
但是当我给出这样的完美尺寸时
HAL_UART_Transmit_IT(&huart2,(uint8_t*)"hello\r\n",7);
我得到了应该得到的实际输出
你好\ r \n
通过UART传输数据并查找某个缓冲区中是否存在子串是完全不同的任务.
有什么建议为什么会发生这种情况?
PS:基本上我的项目是GSM MODULE SIM800c和STM32f407VGt6我想从stm32发送各种AT命令并检查响应,以便我可以相应地工作.
以前我用AVR系列mcus尝试过这个项目,我可以发送短信,接收特定的短信,使用post和get方法向服务器发送数据,一切都运行得很好.
转移到ARM后,我没有得到STM32的表现.