使用 HC327 [STM32] 连接到 ELM05 BT(不像看起来那么简单)



我想使用 HC-05 通过蓝牙将 ELM327 与 ELM05 连接STM32F4。我有一些特定的问题。每次我尝试使用"AT+LINK"时,HC-05都会响应"失败"。

硬件:

  • 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+ORGLrn", strlen("AT+ORGLrn"), 100); //HC-05:OK
HAL_Delay(1000);
HAL_UART_Transmit(&huart2, (uint8_t *)"AT+NAME=MASTERrn", strlen("AT+NAME=MASTERrn"), 100); //HC-05:OK
HAL_Delay(1000);
HAL_UART_Transmit(&huart2, (uint8_t *)"AT+UART=9600,1,0rn", strlen("AT+UART=9600,1,0rn"), 100); //HC-05:OK
HAL_Delay(1000);
HAL_UART_Transmit(&huart2, (uint8_t *)"AT+RESETrn", strlen("AT+RESETrn"), 100); //HC-05:OK
HAL_Delay(1000);
HAL_UART_Transmit(&huart2, (uint8_t *)"AT+ROLE=1rn", strlen("AT+ROLE=1rn"), 100); //HC-05:OK
HAL_Delay(1000);
HAL_UART_Transmit(&huart2, (uint8_t *)"AT+PSWD=1234rn", strlen("AT+PSWD=1234rn"), 100); //HC-05:OK
HAL_Delay(1000);
HAL_UART_Transmit(&huart2, (uint8_t *)"AT+INITrn", strlen("AT+INITrn"), 100); //HC-05:OK
HAL_Delay(10000);
HAL_UART_Transmit(&huart2, (uint8_t *)"AT+RMAADrn", strlen("AT+RMAADrn"), 100); //HC-05:OK
HAL_Delay(1000);
HAL_UART_Transmit(&huart2, (uint8_t *)"AT+PAIR=86DC,B0,ABF7F1,20rn", strlen("AT+PAIR=86DC,B0,ABF7F1,20rn"), 100); //HC-05:OK
HAL_Delay(21000);
HAL_UART_Transmit(&huart2, (uint8_t *)"AT+BIND=86DC,B0,ABF7F1rn", strlen("AT+BIND=86DC,B0,ABF7F1rn"), 100); //HC-05:OK
HAL_Delay(3000);
HAL_UART_Transmit(&huart2, (uint8_t *)"AT+LINK=86DC,B0,ABF7F1rn", strlen("AT+LINK=86DC,B0,ABF7F1rn"), 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一直在尝试连接到榆树。 mac地址是正确的 - 我用了很少的MacAdress扫描仪,地址在任何地方都是相似的。 每次连接到 ELM327 时都需要密码(即使设备与我的智能手机配对(。 我可能阅读了StakOVF和其他网站上的所有主题。我发现的解决方案不起作用。 有谁知道,怎么了?

以下是使用 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 命令。

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

相关内容

最新更新