问题标签 [sim800]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - strstr 找不到子字符串,但缓冲区包含该值
我正在尝试UART
使用STM32F407V6T6
and CubeMx
。
我UART
的工作正常。我在比较缓冲区时遇到的问题:我strstr()
用来检查我的缓冲区是否包含有效的子字符串。
这是代码:
在这里,我正在做的是连接我的GSM Module Sim800
并发送AT
。在调试我的代码后,我发现buff[6] = 'O'
了buff[7] = 'K'
. 在检查我是否可以闪烁 LED 时。
但是当我尝试函数时strstr()
它不会返回任何东西。
起初我以为我的数组buff
不是以\0
. 所以我做了这个
但什么都没有改变。
任何建议为什么它不能与strstr()
.
提前致谢。
c - 使用 strstr() 后,子字符串也通过 uart 传输
我正在尝试UART
使用STM32F407V6T6
and CubeMx
。
正如我已经发布了一些strstr()
功能问题。这里有一些新问题。
这是代码:
我在这里做的是hello\r\n
使用传输中断进行传输。传输后,我正在检查某些值,例如hi
in rxBuff[10]
。
在这个特定的代码中,我没有收到任何我刚刚创建的缓冲区并检查它是否包含的东西hi
。
请注意,在传输时,我只发送 7 个字节的数据。但是在HAL_UART_Transmit_IT()
大小我给10的地方。
HAL_UART_Transmit_IT(&huart2,(uint8_t*)"hello\r\n",10);
将此代码闪烁到我的 stm32 后,我可以在终端中看到各种输出,例如
你好\r\n你好
如果我将 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 的表现如何。
https - 无法通过 Sim 800 向 thingspeak 发送数据
我已通过 TTL 连接器将 sim800L 连接到我的 PC。使用“腻子”,我尝试使用以下 AT 命令通过 sim 800 GSM 模块将数据发送到 thingspeak。
在这段代码结束时,GSM 模块返回 SEND OK 但我无法在我的 thingspeak 频道上获取数据。我能为此做些什么?好心,帮帮我。
python-3.x - 为什么 GSM/GPRS SIM800L 模块在英国不工作
我来自英国,我正在使用 SIM800L 模块发送短信。我的模块没有连接到网络(LED 每秒闪烁一次,而不是 3 秒后)。我不知道是什么问题,我想知道这个模块(SIM800L)是否在英国工作?如果不是,那么其他支持 4G 的模块可以正常工作吗?我正在使用 Raspberry Pi 3 连接 GPRS 模块。
iot - 如果启用了 ATE1(回显),是否应该将响应附加到 AT 命令?
我即将实现一个适用于 GPRS 调制解调器(尤其是 SIM800L)的 PC 控制台程序。
我刚刚了解到由于 UCR(未经请求的结果代码)的出现而难以解析响应。
所以我用谷歌搜索了一下,发现了这篇文章:
报价:
打开 ECHO (ATE1) 我见过的大多数应用程序示例都会关闭 ECHO(通过发送 ATE0)。原因未知,但他们中的大多数人都说减少串口通信(因此减少了解析器的工作量)。但这是不正确的。
如果您想建立强大的通信,您应该打开 ECHO。原因很简单,您可以检测调制解调器接收到的命令/URC 的顺序。这是上图的实际顺序(从调制解调器的回声看):
我很困惑。我想它应该可以工作,但前提是响应总是在相应命令之后进行。
但我找不到它的强项。AT 命令的描述和 SIM800L 数据表都没有包含该声明。
或者,也许我只是以错误的方式理解它?
udp - UDP 数据报发送的正确 AT 命令序列
你能帮忙消除我的困惑吗?
我正在阅读我的 SIM800L 模块的 AT 命令手册,在单个命令的范围内一切都很清楚。但在发送 UDP 数据包时,尚不清楚哪种顺序最好。
所以,我知道命令的顺序如下:
好的,但我需要不时发送数据报。比如说,这个时间段是从几分钟到几小时。
我看到 AT+CIICR 可以为后续调用返回 ALREADY CONNECTED ,我想我不应该多次调用它。所以问题是:下一个数据报应该使用哪个序列?:
1)
要不就:
2)
和 AT+CIPCLOSE 在调制解调器关闭之前的某个地方。
AT+CIPSTART 状态是否有生存时间?最佳做法是什么?
json - Arduino 从软件串口接收数据
对不起我的英语不好。我正在尝试在我的 Arduino 上接收来自 Sim800 的 json 数据。要读取串行端口上的数据,我使用了以下代码:
但收到不完整的数据。如下:
为了获得更好的结果,我使用了以下代码:
数据完全接收。如下:
但是我觉得这个代码不好,有问题。例如如果没有连接sim800时serialSIM800不可用,下面的代码会导致崩溃while(serialSIM800.available()==0);
因为这总是正确的或者如果有错误并且OK
没有收到,则以下代码导致崩溃while(!(data[x-1]=='K'&&data[x-2]=='O'));
因为这总是正确的。最大数据长度为 120 字节,我应该怎么做才能从 Arduino 串口接收 Json 数据?谢谢你们。
tcp - 为什么当 IP 地址和 TCP 连接建立后,SIM 响应 AT+CIPSEND 并显示“+CME ERROR: operation not allowed”?
我正在与一个团队合作,使用名为“SIM800L EBV”的 GSM 模块通过 2G 网络将数据从 Raspberry Pi 发送到服务器。我们遇到了仅在非洲赞比亚发生的 AT+CIPSEND 错误,而在美国(阿肯色州、科罗拉多州和华盛顿州)已经正常工作了两年。下面是我们的 SIM 日志的图片。我们从日志中注意到,请求 IP 地址的 AT+CIFSR 正在工作。并且当运行 AT+CIPSTART 启动与服务器“obfuscated.org”在端口 11002 的 TCP 连接时,响应 OK 和 CONNECT OK,表明与服务器的 TCP 连接已建立。然而,当 AT+CIPSEND 运行时,我们收到“+CME ERROR: operation not allowed”。有没有人遇到过这个问题?有谁知道可能有助于解决问题的任何支持信息?关于如何解决这个 CME 错误有什么建议吗?是否有任何其他命令可以替换此 AT+CIPSEND 命令?为什么它在美国行得通,而在赞比亚却不行?非常感谢!
gsm - AT指令模块SIM7000E
我正在 STM32 板上编写一些功能。该功能由一系列 AT 命令组成,这些命令通过 UART 发送到 SIM7000E 模块,以执行不同的任务。该模块使用带 GSM 的 SIM 卡。
配置函数发送以下命令:
现在我想编写一个函数来检查模块是否在配置函数后消耗网络数据。我不确定是否应该检查 CREG、CGATT、CIICR 或其他命令。
那么问题来了:SIM卡在哪一点消耗网络数据?
先感谢您!
arduino - 无法使用 AT+CMGS="XXXXXXXXX" 设置接收方电话号码返回错误 325
我正在使用 SIM808 向特定号码发送短信。但是当尝试使用 AT+CMGS=XXXXXXX 设置数字时,返回 +CMS ERROR:325。我已将 AT+CSCS 设置为 GSM,但仍然没有运气。以下是代码: