C++ Mbed ATCmdParser::recv使用scanf类型参数生成不正确的字符串结果
使用mbed微控制器平台使用AT命令查询GSM模块。C++ Mbed ATCmdParser::recv使用scanf类型参数生成不正确的字符串结果,c++,scanf,at-command,mbed,C++,Scanf,At Command,Mbed,使用mbed微控制器平台使用AT命令查询GSM模块。 以下代码不起作用,它导致超时请求失败: UARTSerial bus(PB_10, PB_11, 115200); bus.set_flow_control(Serial::RTSCTS, PB_14, PB_13); ATCmdParser parser(&bus, AT_DELIMINATOR); char buffer[10]; parser.send("AT+CPIN?"); if (parser.recv("+CPIN:
以下代码不起作用,它导致超时请求失败:
UARTSerial bus(PB_10, PB_11, 115200);
bus.set_flow_control(Serial::RTSCTS, PB_14, PB_13);
ATCmdParser parser(&bus, AT_DELIMINATOR);
char buffer[10];
parser.send("AT+CPIN?");
if (parser.recv("+CPIN: %2s", buffer))
{
log->info("[AT+CPIN?] Returned result %s", buffer);
} else {
log->info("[AT+CPIN?] Request failed");
}
问题
问题是对parser.recv(“+CPIN:%2s”,buffer)”的调用中的%2s参数。
:
parser.recv(“+CPIN:”)
parser.recv(“+CPIN:%s”,buffer)
产生buffer=s
实际上GSM模块正在发送SIM PIN
parser.scanf(“+CPIN:%s\r”,缓冲区)
如果你能告诉我如何读一个有空格的字符串,你就可以得到额外的分数 预期结果 应将下列值之一复制到
缓冲区中
:
- 准备好了吗
- SIM PIN码
- 辛朴
- PH-SIM PIN码
- PH-FSIM引脚
- PH-FSIM PUK
- SIM PIN2
- SIM PUK2
- PH-NET引脚
- PH-NET PUK
- PH-NETSUB引脚
- PH-netsubpuk
- PH-SP引脚
- PH-SP PUK
- PH公司PIN码
- 普克公司
- PH-MCL引脚