刚收到我的第一个ESP8266 wifi模块,有些兴奋.但是我一直无法与它充分沟通.我已经通过USB到串行电缆将模块连接到我的计算机,我通过单独的电源(3.3v)为模块供电.
在为模块供电后,我收到以下信息(通过PuTTY或Arduino串行监视器窗口):
[Vendor:www.ai-thinker.com Version:0.9.2.4]
ready
Run Code Online (Sandbox Code Playgroud)
我尝试过发送各种AT命令,例如
AT+RST
Run Code Online (Sandbox Code Playgroud)
但我没有回应.在putty中使用ctrl + m和ctrl + j也无济于事.
如果有帮助,请参阅我的YouTube视频:https: //www.youtube.com/watch?v = RubyOuHuWDc
我有2个GSM调制解调器,K3772-Z的字符集为8859-1,工作正常.
但对于我的其他GSM调制解调器,它的中兴K3565-Z,它不会工作它继续返回"无法设置字符集"
有谁知道你的字符集是什么,或者有没有办法让我找出使用什么字符集?
我正在使用连接到Arduino Uno的sim900 gps/gprs模块屏蔽,我将如何解析我的AT命令的响应?或者,如何在发送AT命令后删除序列中打印的第1行?
AT+CMGL="ALL"
+CMGL: 1,"REC READ","+XXXXXXXXXX","","16/04/25,15:20:59+32"
Hilp akp si ralphh the pogi one mmalit mi pizza hehehehehe
+CMGL: 2,"REC READ","+XXXXXXXXXX","","16/04/25,21:51:33+32"
Yow!!!
OK
Run Code Online (Sandbox Code Playgroud)
在上面的输出示例中,我想摆脱AT + CMGL ="ALL"然后解析左边的数据,解析的最佳方法是什么
at+stgi=23 +STGI:23,2,8,1,0,0,28,"0045006E007400650072002000500049004E0020006E006F002E003A OK 如何在命令行中输入 PIN 码?
众所周知,Hal Lib 提供了一些回调函数来管理硬件中断。但我不知道它们是如何工作的?
事实上,我正在使用HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)这个函数来接收其他设备的数据并检查这些数据。所以我使用 usart 中断来接收它们。
但是不知道回调函数什么时候执行,是取决于接收缓冲区的长度还是数据的缓冲区?
我猜在接收到一个字符时会触发硬件中断,但是在接收缓冲区已满后会执行回调函数。
PS:本人使用stm32-nucleo-f410开发板与AT指令设备通信,本人新手。(很抱歉我的英语不好!)非常感谢。
我已完成所有呼叫拨号部分,它的工作原理.现在我需要通过手机播放录制的声音或麦克风.我只需要知道如何将音频传递到加密狗并通过通话发送.
这是我拨打电话号码的工作代码
SerialPort port = new SerialPort();
port.Open();
string t = port.ReadExisting();
Thread.Sleep(100);
string cmd = "ATD";
string phoneNumber = "071********";
port.WriteLine(cmd + phoneNumber + ";\r");
port.Close();
Run Code Online (Sandbox Code Playgroud) 经过一些反复试验,今晚我的Arduino Uno开始与ESP8266模块进行通信,最常见的接线方式是,从大尺寸外部电源为模块提供3.3V电源,直接连接3.3V TX线路和分压器从5V RX读取.
SoftwareSerial esp8266(2,3);
void setup()
{
Serial.begin(9600);
esp8266.begin(115200);
char buffer[50];
esp8266.write("AT\r\n");
esp8266.readBytes(buffer, sizeof(buffer));
Serial.println(buffer);
}
Run Code Online (Sandbox Code Playgroud)
在为ESP8266 < - > Arduino串行通信设置115200速度后,串行监视器上出现了一些明确的启动消息和命令响应.
由于这些消息是由一些垃圾字符交错的,我试图降低通信速度.为此,我向AT+IPR=9600模块发出命令,该模块立即显示蓝色LED上的一些操作,控制台上的OK响应,最后导致相同的LED被固定.
我随后调整了串行速度上的Arduino的一侧,有esp8266.begin(9600);,但永远无法获得与模块的任何进一步的沟通.
我现在只能以任何速度看到垃圾.
模块可以升级到不同的速度吗?我尝试了很多(4800,57600,19200,回到115200等),但显示器上没有明显的响应.
您是否可以建议重新建立连接?有没有办法重置上一个命令结果?如果可以尝试任何更简单的解决方案,我宁愿避免设置固件更新.