Посмотрите на datasheet. Нет AT+VER?
или AT+VERS
команд. Это AT+VERR?
и AT+VERS?
.
Я провел несколько тестов с HC-06, а некоторые команды нуждались в CR, некоторые - нет. Может, это и ваша проблема?
Я использовал этот код в эскизе Arduino, чтобы установить имя устройства BT для HC-06:
// Enter AT command mode
if (enterATCommandMode() == true)
{
// Set the name. As we don't have an end-of-line mark, we need to wait until the
// timeout is reached and hope for the best. We also check whether the reply starts
// with "OK", so have at least some indication things worked.
hc06.print("AT+NAME" + userInput);
String reply = hc06.readString();
if (reply.equals(""))
{
Serial.println(F("HC-06 didn't reply in time!"));
}
else
{
if (reply.length() < 2 || !reply.substring(0,2).equalsIgnoreCase(F("OK")))
Serial.println("Unexpected answer ('" + reply + "') to AT+NAME command!");
else
Serial.println(F("Name was set successfully."));
}
}
bool enterATCommandMode()
{
// This buffer receives at most 2 characters as the reply (plus terminating \0)
char atReplyBuffer[] = { '\0', '\0', '\0' };
// Send AT command and receive answer
hc06.print(F("AT"));
int bytesRead = hc06.readBytesUntil('\0', atReplyBuffer, 2);
String reply = String(atReplyBuffer);
// Timed out or answer wasn't OK? Error.
if (bytesRead != 2 || !reply.equalsIgnoreCase(F("OK")))
{
if (reply.equals(""))
Serial.println(F("HC-06 didn't reply in time!"));
else
Serial.println("Unexpected reply ('" + reply + "') to AT command");
return false;
}
// Success
return true;
}
Спасибо Торстен для вашей информации. Возможно, у меня было неправильное и старое техническое описание. Теперь AT + VERS? и HM-10 отвечает строкой HMsoft V540. – Ferrari
Спасибо Thorsten за информацию. Возможно, у меня было неправильное и старое техническое описание. Теперь AT + VERS? и HM-10 отвечает строкой HMsoft V540. Я также добавил '\ r', '\ n' в конец строки AT + NAMEaa, но я не получил никакого ответа от HM-10 – Ferrari
@Ferrari. Нужно ли вводить AT-режим команды, как в моем примере? Вы сделали это? –