我有一个定制电路,STM32F030F4P6 作为主控制器,HDY-08 闪烁着 HM-10 固件作为蓝牙 LE 发射器。
我想要在电路上电时做的是使用自定义参数(名称,波特,模式)手动设置模块,然后继续进行主要计算部分。
但是,我注意到该模块在收到任何 AT 命令后都不会采取行动,尽管它会以 OK+... 字符串进行响应。
例如,我发送“AT+NAMEmyname”并收到“OK+Set:myname”,但是,名称根本没有改变,在我的手机蓝牙扫描中仍然是 HMSoft。在 9600 的波特率上,我发送“AT+BAUD4”并接收“OK+Set:4”,然后发送“AT+BAUD?” 仍然在 9600 的波特率上并收到相同的信息:“OK+BAUD4” - 模块继续在 9600 上工作,但是,它说它在 115200 上。尝试在不同的时间间隔上下拉动重置和 sys_key,这导致除了不工作的 AT 命令之外什么都没有。
目前,我的模块在启动时将 RESET 引脚拉高,SYS_KEY 拉高 1200 毫秒,然后将其拉低,然后我继续发送 AT 命令,在发送/接收会话之间有 250 毫秒的延迟:
HAL_GPIO_WritePin(SYSTEM_KEY_GPIO_Port, SYSTEM_KEY_Pin, 1);
HAL_Delay(1200);
HAL_GPIO_WritePin(SYSTEM_KEY_GPIO_Port, SYSTEM_KEY_Pin, 0);
HAL_UART_Transmit(&huart1, (uint8_t*)setup, 8, 100);
HAL_UART_Receive(&huart1, (uint8_t*)response, 8, 100);
HAL_Delay(250);
HAL_UART_Transmit(&huart1, (uint8_t*)reset, 8, 100);
HAL_UART_Receive(&huart1, (uint8_t*)response2, 8, 100);
HAL_Delay(250);
HAL_UART_Transmit(&huart1, (uint8_t*)check, 8, 100);
HAL_UART_Receive(&huart1, (uint8_t*)response3, 8, 100);