找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4007|回复: 8
打印 上一主题 下一主题
收起左侧

JDY-23蓝牙模块单片机串口发送at指令返回结束错误

[复制链接]
跳转到指定楼层
楼主
10黑币
大佬们 最近做项目设计 选用了JDY-23的蓝牙模块 在单片机和蓝牙模块的数据传输上碰了灰。我在串口助手上发送AT+SLEEP2(深度休眠),蓝牙模块会进入休眠 此时手机是搜不到蓝牙的,而在单片机上我也往串口里发送数据(对应的ascii16进制)却发挥不了作用 蓝牙还是搜的到 ,后面的\r\n也是添加了的,就很神奇 ,然后我把蓝牙的tx拉出来又拿了块usb转ttl 插到 rx 上,在pc上看返回了+ERR:1003,询问客服 说是结束错误,是我哪里配置错误了吗 希望有大佬能供给我解答 万分感谢!
下面是相关代码





之后又发现以下这种情况 右边是单片机发送的 左边是蓝牙接受返回的 可以看到VER的指令可以有效返回 而sleep2 的不可以

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:65956 发表于 2021-9-11 08:36 | 只看该作者
都没说你用什么单片机,如果是STC51单片机12T的波特率9600是FD没错,如果是STC12C或是STC15的1T模式就不一样了,你定义的波特率是4800的和加倍模式,可能你要查一下蓝牙手册看怎么要求发送的
回复

使用道具 举报

板凳
ID:123289 发表于 2021-9-11 08:50 | 只看该作者
两种方式发出的数据,不发给蓝牙,改发给你能收到信息的东东,对比一下信息有何差异,答案就有了。
回复

使用道具 举报

地板
ID:922670 发表于 2021-9-12 14:10 | 只看该作者
aking991 发表于 2021-9-11 08:36
都没说你用什么单片机,如果是STC51单片机12T的波特率9600是FD没错,如果是STC12C或是STC15的1T模式就不一 ...

老哥我用的是stc8h 波特率我检查了下应该是对的
回复

使用道具 举报

5#
ID:624769 发表于 2021-9-12 23:05 | 只看该作者
2297809780 发表于 2021-9-12 14:10
老哥我用的是stc8h 波特率我检查了下应该是对的

通过你强调的 0xFA 我查了一下,定时器1, 8位自动重载, 22.1184MHz 的晶振,才能,0xFA  达到9600 波特率。
但是!! 转折来了哦, 只限于标准51单片机,或者 STC89, 90 系列单片机。

所以,你如果是 STC8h  那么,只能用 16位自动重载模式,代码一起给你吧。
void UartInit(void)                //9600bps@22.1184MHz
{
        SCON = 0x50;                //8位数据,可变波特率
        AUXR |= 0x40;                //定时器时钟1T模式
        AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
        TMOD &= 0x0F;                //设置定时器模式
        TL1 = 0xC0;                //设置定时初始值
        TH1 = 0xFD;                //设置定时初始值
        ET1 = 0;                //禁止定时器%d中断
        TR1 = 1;                //定时器1开始计时
}

回复

使用道具 举报

6#
ID:922670 发表于 2021-9-13 17:13 | 只看该作者
188610329 发表于 2021-9-12 23:05
通过你强调的 0xFA 我查了一下,定时器1, 8位自动重载, 22.1184MHz 的晶振,才能,0xFA  达到9600 波特 ...

谢谢老哥 我用的也是51单片机stc8h  但是哈我还配置了波特率加倍,这一除 刚好是11.0592MHz 刚好帮我证明了对的 谢谢老哥,能帮我看下其他还有问题吗哈哈哈
回复

使用道具 举报

7#
ID:922670 发表于 2021-9-13 17:17 | 只看该作者
yzwzfyz 发表于 2021-9-11 08:50
两种方式发出的数据,不发给蓝牙,改发给你能收到信息的东东,对比一下信息有何差异,答案就有了。

大佬 我后续测下来 发现有些指令是可以有正常返回值和作用的 但是AT+SLEEP2的指令单片机发送还不行,同样的还有AT+SLEEP、AT+ADVIN共同点我发现是AT后面超过5位就都失效(不包括\r\n),同时神奇的是写在这些不能有效返回的指令后面发送的指令也失去了作用,没有返回值了(在前面发送是可以有用的)能指点一波迷津吗
回复

使用道具 举报

8#
ID:922670 发表于 2021-9-28 14:15 | 只看该作者
已解决 是延迟
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表