| 已解决 是延迟 |
yzwzfyz 发表于 2021-9-11 08:50 大佬 我后续测下来 发现有些指令是可以有正常返回值和作用的 但是AT+SLEEP2的指令单片机发送还不行,同样的还有AT+SLEEP、AT+ADVIN共同点我发现是AT后面超过5位就都失效(不包括\r\n),同时神奇的是写在这些不能有效返回的指令后面发送的指令也失去了作用,没有返回值了(在前面发送是可以有用的)能指点一波迷津吗 ![]() |
188610329 发表于 2021-9-12 23:05 谢谢老哥 我用的也是51单片机stc8h 但是哈我还配置了波特率加倍,这一除 刚好是11.0592MHz 刚好帮我证明了对的 谢谢老哥,能帮我看下其他还有问题吗哈哈哈 ![]() |
2297809780 发表于 2021-9-12 14:10 通过你强调的 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开始计时 } |
aking991 发表于 2021-9-11 08:36 老哥我用的是stc8h 波特率我检查了下应该是对的 |
| 两种方式发出的数据,不发给蓝牙,改发给你能收到信息的东东,对比一下信息有何差异,答案就有了。 |
| 都没说你用什么单片机,如果是STC51单片机12T的波特率9600是FD没错,如果是STC12C或是STC15的1T模式就不一样了,你定义的波特率是4800的和加倍模式,可能你要查一下蓝牙手册看怎么要求发送的 |