本帖最后由 JacksonChen 于 2024-11-25 17:33 编辑
使能HC32L110C6UA的串口1与XY-MBO21F进行通讯,与蓝牙连接的手机app能够进行printf的输出打印,但是发送AT指令时蓝牙模块没有响应,请教一下大家是什么原因导致的?
-----------------------------------------------------------------------------
以上问题已解决,最后发现是代码逻辑问题,但是又有新的问题。
电脑端发送AT指令蓝牙有响应,手机端发送指令蓝牙响应是“ERROR”。
-----------------------------------------------------------------------------
后续跟蓝牙芯片的技术人员咨询了解到,该款芯片AT指令只支持在串口下发送,不支持手机执行AT指令。
核心函数代码:
- //处理串口指令函数
- void Parse_Cmd(void)
- {
- uint8_t tmp_buf[128] = {0};
-
- //接收完成才处理
- if(u8Rx**)
- {
- if(strstr((char *)u8RxData , "AT+"))//控制AT命令
- {
- printf("%s" , u8RxData);
- sprintf((char *)tmp_buf , "%s" , u8RxData);
- Usart1_Puts((char *)tmp_buf);
- }
- else if(strstr((char *)u8RxData , "+VER"))//查询固件版本号的成功响应
- {
- printf("Firmware version number:%s" , u8RxData);
- sprintf((char *)tmp_buf , "%s" , u8RxData);
- Usart1_Puts((char *)tmp_buf);
- }
- else if(strstr((char *)u8RxData , "OK"))//指令设置的成功响应
- {
- printf("The setting has been successfully configured.");
- sprintf((char *)tmp_buf , "The setting has been successfully configured.");
- Usart1_Puts((char *)tmp_buf);
- }
- else//非法命令
- {
- printf("Unknown command = %s\r\n" , u8RxData);
- sprintf((char *)tmp_buf , "Unknown command = %s" , u8RxData);
- Usart1_Puts((char *)tmp_buf);
- }
-
- //清理缓冲区和标志
- memset((char *)u8RxData , 0 , sizeof(u8RxData));
- u8Rx** = 0;
- uart_rx_head = 0;
- uart_rx_tail = 0;
- }
- }
|