完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我编译了AT固件,开启了经典蓝牙。
进行了测试。 测试1:目的是验证是否开启成功。具体步骤如下:用ch340模块连接txd2和rxd2,打开串口助手,发送AT回车换行,返回AT换行以及OK;有返回OK,应该说明烧录成功,然后用蓝牙连接了手机,可以正常收发数据字符串等; 说明烧录成功了。 然后进行测试2,测试2有问题了。具体如下。 51通过串口和ESP32连接(作为蓝牙模块)。。。。。。。。。。手机蓝牙; 我将ESP32当作蓝牙模块,将51单片机的串口连接ESP32的TX2和RX2,用51单片机的串口发送字符串函数,给ESP32发送AT,返回的是AT,但是没有OK。发送其他指令也是没返回Ok, 比如发送 AT+BtiNIT=1 ,返回AT而没有OK。 但是经过一系列发送指令,也能和手机的蓝牙连接,连接之后,用手机蓝牙助手,发送字符给ESP32蓝牙模块,单片机收到的字符之后打印出来,发现和发送的不一样,接收到的都是+B。。 如果手机发送了xxxxxxP,前面需要先发6个字符,后面P或者其他字符才是有效字符,之后,单片机收到的是+BP空空。 uart3 rec = + uart3 rec = B uart3 rec = P uart3 rec = uart3 rec = 请问为什么直接用CH340模块连接ESP32可以正常蓝牙通信,单片机接ESP32,和手机蓝牙连接,却不能正常呢? 谢谢。 |
|
相关推荐
1个回答
|
|
以下是一些建议和可能的原因:
1. 确保ESP32和51单片机之间的串口连接正确。检查TX2和RX2引脚是否正确连接,以及TX和RX是否交叉连接。 2. 检查51单片机的串口波特率是否与ESP32的波特率匹配。如果波特率不匹配,可能导致通信问题。您可以在ESP32-AT固件中设置波特率,例如: ``` void setup() { Serial.begin(9600); // 设置ESP32的波特率为9600 } ``` 3. 确保51单片机发送AT命令的方式正确。在51单片机中,您需要在发送AT命令后添加一个换行符('n'或'rn'),例如: ``` Serial.print("ATrn"); ``` 4. 检查ESP32-AT固件是否支持在运行时接收AT命令。有些固件可能需要在启动时发送特定的AT命令来启用或配置某些功能。 5. 如果以上方法都无法解决问题,您可以尝试使用其他AT命令来检查ESP32的状态,例如: ``` AT+RST // 重启模块 AT+GMR // 获取模块固件版本信息 ``` |
|
|
|
只有小组成员才能发言,加入小组>>
406浏览 6评论
338浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
321浏览 5评论
322浏览 4评论
309浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 01:38 , Processed in 0.568803 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号