[C]
纯文本查看 复制代码
//获取ATK-HC05模块的角色//返回值:0,从机;1,主机;0XFF,获取失败. u8 HC05_Get_Role(void){ u8 retry=0X0F;u8 temp,t;while(retry--){HC05_KEY=1;//KEY置高,进入AT模式delay_ms(10);u2_printf("AT+ROLE?rn");//查询角色for(t=0;t<20;t++) //最长等待200ms,来接收HC05模块的回应{delay_ms(10);if(USART2_RX_STA&0X8000)break;}HC05_KEY=0;//KEY拉低,退出AT模式if(USART2_RX_STA&0X8000)//接收到一次数据了{temp=USART2_RX_STA&0X7FFF;//得到数据长度USART2_RX_STA=0; if(temp==13&&USART2_RX_BUF[0]=='+')//接收到正确的应答了{temp=USART2_RX_BUF[6]-'0';//得到主从模式值break;}}}if(retry==0)temp=0XFF;//查询失败.return temp;}
发送查询模块的指令后,上面程序代码中返回响应的数据长度怎么得出temp=13?