0

我有一个定制电路,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 命令之外什么都没有。

目前,我的模块在启动时将 RE​​SET 引脚拉高,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);
4

1 回答 1

0

问题解决了:我不知道为什么,但是经过多次拖动相同的代码后,我得到了有效的解决方案:RESET Pin 1 SYSTEM_KEY Pin 1 PWR 1

  1. SYSTEM_KEY 引脚 0
  2. 延迟 1200 毫秒
  3. SYSTEM_KEY 引脚 1
  4. AT+BAUD4 -> OK+Set:4
  5. 延迟 250 毫秒
  6. 重新初始化 STM 上的 UART,现在波特率为 115200
  7. AT+波特率?-> 确定+获取:4
  8. 它可以工作,数据根据需要流动。

谢谢我的回答<3

于 2018-10-12T18:34:45.903 回答