ESP32实现蓝牙主从机连接-BluetoothSerial蓝牙库.docx

ESP32实现蓝牙主从机连接-BluetoothSerial蓝牙库.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ESP32实现蓝?主从机连接-Blu etoothSerial蓝?库 ?、概述 因为需要使?ESP32的蓝?功能,就看了下ESP32的BluetoothSerial蓝?库,例程?是ESP32作为从机,使??机或者其他设备连接ESP32进?数据传输。但我?需要使?ESP32互连,?个作为主机,?个作为从机,就根据库敲了?下ESP32做主机主动连接从机的代 码,就像HC05或06蓝?似的,实现两个蓝?进?配对,上电?动连接,很?便。 使?的是BluetoothSerial这个蓝?库,函数少且简单,看相关函数名字也能知道是实现什么功能,?且也不需要进??播啥的,能实 现点对点连接就可以,但是库简单的同时功能也少,没有扫描函数,但问题不?。 为什么写博客呢,因为我看?上没有这个库的相关介绍,弄好了就记录?下,万?以后需要?却找不到了,就不太好,就在这记录分享 ?下。 ?、测试代码 #include Arduino.h #include BluetoothSerial SerialBT; #define Master 1 主 从 机 模 式 选 择 1主 机 0从 机 void Bluetooth_Event(esp_spp_cb_event_t event, esp_spp_cb_param_t *param); 蓝?事件回调函数uint8_t address[6]={0x30,0x83,0x98,0xC3,0x50,0xDA}; 从 机 MAC地址不同的蓝?地址不同需要??修改void setup() { Serial.begin(115200); SerialBT.register_callback(Bluetooth_Event); 设置事件回调函数连接 断开发送接收 if(Master) { SerialBT.begin( ,true); 开启蓝?名称为 主 机 Serial.printf( ); SerialBT.connect(address); Serial.printf( ); } else { SerialBT.begin( ); 开启蓝?名称为 从 机 Serial.printf( ); } } void loop() { if(Master) SerialBT.write(A); delay(300); } void Bluetooth_Event(esp_spp_cb_event_t event, esp_spp_cb_param_t *param) 蓝?事件回调函数 { if(event == ESP_SPP_OPEN_EVT || event == ESP_SPP_SRV_OPEN_EVT) 蓝?连接成功标志 { 蓝?主 机 和从 机 模 式 对应的标志不同,前?的是主 机 模 式 的,后?是从 机 模 式 Serial.write( ); } else if(event == ESP_SPP_CLOSE_EVT) 蓝?断开连接标志 { Serial.write( ); } else if(event == ESP_SPP_DATA_IND_EVT) 数据接收标志 { while(SerialBT.available()) { Serial.write(SerialBT.read()); } Serial.write( ); } else if(event == ESP_SPP_WRITE_EVT) 数据发送标志 { Serial.write( ); } } 上?就是基本的代码了,可以修改Master宏定义来选择主从机模式,使?register_callback()函数为蓝?事件添加了回调函数,当连 接成功、断开连接、接收数据和发送数据等事件发?时,会触发?定义的Bluetooth_Event()函数,根据事件枚举标志位来判断当前是哪种 事件,使?串?打印出相关字符。 代码?没有写连接失败后重复连接的代码,因为我发现,每次连接时间好像不太固定,差的有点多,后?再改进。所以?前这代码最好 先给从机通电,再给主机通电,避免连接失败。 三、总结 连接从机需要从机的MAC地址,这个可以使??机上的蓝?串?软 件查 看 。

文档评论(0)

暗伤 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档