初级会员

- 积分
- 67
- 金钱
- 67
- 注册时间
- 2020-3-30
- 在线时间
- 8 小时
|
5金钱
请问在stm32f1精英板蓝牙实验中,MCU检测蓝牙模块时,通过在KEY置高时u3_printf发送“AT\r\n”,在置低,然后为啥返回的是4个字符(即temp怎么是4?)
下面附上源码,请各位大佬指教。
- while(retry--)
- {
- HC05_KEY=1; //KEY置高,进入AT模式
- delay_ms(10);
- u3_printf("AT\r\n"); //发送AT测试指令
- HC05_KEY=0; //KEY拉低,退出AT模式
-
-
- for(t=0;t<10;t++) //最长等待50ms,来接收HC05模块的回应
- {
- if(USART3_RX_STA&0X8000)break;
- delay_ms(5);
- }
-
- if(USART3_RX_STA&0X8000) //接收到一次数据了
- {
- temp=USART3_RX_STA&0X7FFF; //得到数据长度
- USART3_RX_STA=0;
- <font color="#ff0000"> if(temp==4&&USART3_RX_BUF[0]=='O'&&USART3_RX_BUF[1]=='K')</font>
- {
- temp=0;//接收到OK响应
- break;
- }
- }
- }
- if(retry==0)temp=1; //检测失败
- return temp;
复制代码 蓝牙指令手册里只说明AT+“\r\n”,返回的是“OK”,这不是两个字符?要是一定是4个字符,那么另外的两个字符分别是什么?
本人已经试过“\r\n”或者两个‘ ’空格字符,都行不通。
|
|