Bluetooth 使用HC05[STM32]连接ELM327 BT(不像看上去那么简单)
我想使用HC-05通过蓝牙连接STM32F4和ELM327。我有一些特别的问题。每次我尝试使用“AT+链接”时,HC-05都会响应“失败” 硬件:Bluetooth 使用HC05[STM32]连接ELM327 BT(不像看上去那么简单),bluetooth,at-command,stm32f4discovery,elm327,hc-05,Bluetooth,At Command,Stm32f4discovery,Elm327,Hc 05,我想使用HC-05通过蓝牙连接STM32F4和ELM327。我有一些特别的问题。每次我尝试使用“AT+链接”时,HC-05都会响应“失败” 硬件: STM32F411V+HC-05 iCar2 V327 BT v3.0 我已经做了: 我已经用商业应用程序、终端等测试过ELM327——它连接良好,运行良好 我已经测试过HC-05配置,与BT终端配合得很好 尝试使用AT命令的不同配置来获得Elm327和HC之间的自动连接-每次“失败” 这是我使用的代码的一部分: HAL_UART_Receive
- STM32F411V+HC-05
- iCar2 V327 BT v3.0
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 );
我也尝试过这些命令的不同配置,但一直都是相同的->失败。
顺便说一句,我知道我设置了buadrate 9600,但在AT命令模式下这并不重要。
HC上的指示灯快速闪烁1s,然后缓慢闪烁(以及在连接模式下)2 s,但随后再次快速闪烁,然后再次缓慢闪烁,反复闪烁。我猜HC一直在试图连接Elm。
mac地址是正确的-我使用了几台MacAdress扫描仪,地址到处都是相似的。
ELM327每次连接时都需要密码(即使该设备与我的智能手机配对)。
我可能阅读了斯塔科夫和其他网站上的所有主题。我发现这些解决方案不起作用。
有人知道怎么回事吗?以下是AT命令序列,以便使用HC-05成功连接到ELM327适配器:
- 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标准、打开/关闭回声等。您搜索过Arduino SS吗?根据此问题,您可能面临固件问题。您是指Arduino SlaveSelect吗?对不起,我指的是Arduino堆栈交换,我将再次发布链接