完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在蓝牙实验中,HC05.C中,
//获取ATK-HC05模块的角色[C] 纯文本查看 复制代码 //返回值: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;} 这段代码,u2_printf("AT+ROLE?rn"); //查询角色,假如得到了正确的应答,应该返回(+ROLE:0 OKrn)或者(+ROLE:1 OKrn),就算在最后要加上 结束符,得到的数据长度也不到13啊。为什么啊? 看别的返回OK应答时,数据长度为4,所以rn是占用一个字符,是吧? |
|
相关推荐
3个回答
|
|
楼主直接蓝牙模块接电脑串口调试助手
然后发AT+ROLE=?,试试看 接收区以16进制显示,看看发送完:AT+ROLE=?,回复了你多少个数据? 当然可以发送,主从只是针对蓝牙连接来说,并不是针对串口。 因为你连接上了或者LED引脚有效了。 |
|
|
|
蓝牙模块为什么在连接的时候,不管是主还是从,都可以向对方发送数据?
而且有时只有一个蓝牙模块打开时,LCD上也会显示"STA:Connected",原因不详,是不是因为之前连接过的原因? |
|
|
|
+ROLE:0
OK ; 转换成16进制后变成(2B 52 4F 4C 45 3A 30 0D 0A 4F 4B 0D 0A 3B 0D 0A),共16个16进制数, 0D表示r,是归位的意思, 0A表示n,是换行的意思,难道是显示OK后换行回车,之后的字符都不算了,是调试助手自己添加的吗? |
|
|
|
只有小组成员才能发言,加入小组>>
327浏览 1评论
443浏览 1评论
572浏览 1评论
用PSOC6 BLE当外围设备,两者传输数据时,psoc6概率性出现蓝牙挂死的原因?
455浏览 1评论
是否有办法通过CYW20835板的固件发送BLE HCI命令?
426浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 09:07 , Processed in 0.598025 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号