0

我想使用 HC-05 通过蓝牙将 STM32F4 与 ELM327 连接起来。我有一些具体的问题。每次我尝试使用“AT+LINK”时,HC-05 都会响应“FAIL”。

硬件:

  • STM32F411V + HC-05
  • iCar2 Vgate elm327 BT v3.0

我已经完成了:

  1. 我已经使用商业应用程序、终端等测试了 ELM327 - 它已连接并且运行良好。
  2. 我已经测试过 HC-05 - 配置好,与 BT 终端配合得很好
  3. 尝试使用 AT 命令的不同配置来获得 Elm327 和 HC 之间的自动连接 - 每次“失败”。

这是我使用的代码的一部分:

HAL_UART_Receive_IT(&huart2, BufforMsg, 1);

  HAL_Delay(10000);

  HAL_UART_Transmit(&huart2, (uint8_t *)"AT+ORGL\r\n", strlen("AT+ORGL\r\n"), 100); //HC-05:OK

  HAL_Delay(1000);

  HAL_UART_Transmit(&huart2, (uint8_t *)"AT+NAME=MASTER\r\n", strlen("AT+NAME=MASTER\r\n"), 100); //HC-05:OK

  HAL_Delay(1000);

  HAL_UART_Transmit(&huart2, (uint8_t *)"AT+UART=9600,1,0\r\n", strlen("AT+UART=9600,1,0\r\n"), 100); //HC-05:OK

  HAL_Delay(1000);

  HAL_UART_Transmit(&huart2, (uint8_t *)"AT+RESET\r\n", strlen("AT+RESET\r\n"), 100); //HC-05:OK

  HAL_Delay(1000);

  HAL_UART_Transmit(&huart2, (uint8_t *)"AT+ROLE=1\r\n", strlen("AT+ROLE=1\r\n"), 100); //HC-05:OK

  HAL_Delay(1000);

  HAL_UART_Transmit(&huart2, (uint8_t *)"AT+PSWD=1234\r\n", strlen("AT+PSWD=1234\r\n"), 100); //HC-05:OK

  HAL_Delay(1000);

  HAL_UART_Transmit(&huart2, (uint8_t *)"AT+INIT\r\n", strlen("AT+INIT\r\n"), 100); //HC-05:OK

  HAL_Delay(10000);

  HAL_UART_Transmit(&huart2, (uint8_t *)"AT+RMAAD\r\n", strlen("AT+RMAAD\r\n"), 100); //HC-05:OK

  HAL_Delay(1000);

  HAL_UART_Transmit(&huart2, (uint8_t *)"AT+PAIR=86DC,B0,ABF7F1,20\r\n", strlen("AT+PAIR=86DC,B0,ABF7F1,20\r\n"), 100); //HC-05:OK

  HAL_Delay(21000);

  HAL_UART_Transmit(&huart2, (uint8_t *)"AT+BIND=86DC,B0,ABF7F1\r\n", strlen("AT+BIND=86DC,B0,ABF7F1\r\n"), 100); //HC-05:OK

  HAL_Delay(3000);

  HAL_UART_Transmit(&huart2, (uint8_t *)"AT+LINK=86DC,B0,ABF7F1\r\n", strlen("AT+LINK=86DC,B0,ABF7F1\r\n"), 100); //HC-05:FAIL + INQ: Mac Address

  HAL_Delay(3000);

  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, 0 );

我也尝试过这些命令的不同配置,但始终相同-> FAIL。顺便提一句。我知道我设置了 buadrate 9600,但在 AT 命令模式下没关系。HC 上的灯以非常快的速度闪烁 1 秒,然后缓慢闪烁(以及在连接模式下)2 秒,然后再次非常快地闪烁,然后又缓慢地反复闪烁。我猜 HC 一直在尝试连接到 Elm。mac 地址是正确的 - 我使用的 MacAdress 扫描仪很少,而且地址到处都相似。ELM327 每次连接时都需要密码(即使设备与我的智能手机配对)。我可能阅读了 StakOVF 和其他网站上的所有主题。我发现的解决方案不起作用。有谁知道,怎么了?

4

1 回答 1

0

以下是使用 HC-05 成功连接到 ELM327 适配器​​的 AT 命令序列:

 - AT+RESET
 - AT+ROLE=1
 - AT+CMODE=0
 - AT+INIT
 - AT+BIND=0011,22,334455 //Replace with MAC Address of ELM327
 - AT+PAIR=0011,22,334455,20 //Replace with MAC Address of ELM327, 20 is the timeout value
 - AT+LINK=0011,22,334455 //Replace with MAC Address of ELM327

您还需要确保在尝试此连接时 ELM327 未连接到任何其他设备。您之前可能已经连接到手机以使用终端应用程序进行测试。因此,为了安全起见,请关闭手机的蓝牙。

还要确保这些 AT 命令之间有适当的等待时间。

如果您的 ELM327 每次尝试连接时都需要密码,您也可以使用您正在使用的 AT+PSWD 命令。

连接成功后,您可能还需要在 ELM327 上使用 AT 命令进行配置,设置 ISO 标准,打开/关闭回显等。

于 2019-12-04T07:33:56.487 回答