找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2|回复: 0
收起左侧

求助,e4a蓝牙串口app

[复制链接]
ID:343102 发表于 2025-5-20 18:37 | 显示全部楼层 |阅读模式
现在的ble蓝牙模块很便宜,1元一个还包邮。蓝牙模块比esp8266省电,更适合连接手机和单片机。但是用e4a V7.1.14试用版自带例程编译的蓝牙串口app,安装后可以与蓝牙模块连接,却无法传递字符。蓝牙模块通过usb串口与电脑连接,电脑也无法将字符通过串口助手发送到手机上。但是使用商家提供的手机app是可以互相传递的。不知道问题在哪里?
e4a V7.1.14试用版自带的ble蓝牙例程:

事件 主窗口.创建完毕()
        如果 权限操作1.取系统版本号()>=23 则
                权限操作1.申请全部权限() '必须先申请权限
        结束 如果
        变量 结果 为 逻辑型
        结果 = BLE蓝牙1.初始化()
        弹出提示("初始化结果:" & 结果)       
        BLE蓝牙1.置可被发现()
结束 事件

事件 按钮1.被单击()
        如果 按钮1.标题 = "开始搜索" 则       
                位置传感器1.开始监测() '在某些安卓系统中,必须先进行GPS定位才能搜索到蓝牙设备
                BLE蓝牙1.开始搜索()
                时钟1.时钟周期 = 10 * 1000       
                按钮1.标题 = "停止搜索"
        否则       
                BLE蓝牙1.停止搜索()
                时钟1.时钟周期 = 0       
                按钮1.标题 = "开始搜索"               
        结束 如果
结束 事件

事件 时钟1.周期事件()
        BLE蓝牙1.停止搜索()
        按钮1.标题 = "开始搜索"
        时钟1.时钟周期 = 0
结束 事件

事件 BLE蓝牙1.发现设备(名称 为 文本型,地址 为 文本型,MajorID 为 整数型,MinorID 为 整数型,配对状态 为 整数型)
        弹出提示("发现设备")
        列表框1.添加项目("名称:" & 名称 & "\n地址:" & 地址)
        列表框1.置项目标记(列表框1.取项目数()-1,地址)
结束 事件

事件 BLE蓝牙1.信号强度改变(名称 为 文本型,地址 为 文本型,信号强度 为 整数型)
        变量 计次 为 整数型
        变量 文本数组 为 文本型()
        变量循环首 计次 = 0 至 列表框1.取项目数()-1
                文本数组 = 分割文本(列表框1.取项目内容(计次),"\n")
                如果 文本数组(1) = "地址:" & 地址 则
                        列表框1.置项目内容(计次,"名称:" & 名称 & "\n地址:" & 地址 & "\n信号:" & 信号强度)
                        退出
                结束 如果
        变量循环尾
结束 事件

事件 列表框1.表项被单击(项目索引 为 整数型)
        BLE蓝牙1.连接设备(列表框1.取项目标记(项目索引))
        弹出提示("正在连接")
        主窗口.标题 = "正在连接"
        分组列表框1.清空所有数据()
结束 事件

事件 BLE蓝牙1.连接状态改变(状态 为 整数型)
        如果 状态 = 1 则
                弹出提示("已连接")
                主窗口.标题 = "已连接"
        否则       
                弹出提示("已断开")
                主窗口.标题 = "已断开"
        结束 如果
结束 事件

事件 BLE蓝牙1.发现服务(服务信息 为 集合)
        如果 服务信息.取项目总数() < 0 则
                退出
        结束 如果

        变量 计次 为 整数型
        变量 信息数组 为 文本型()
        变量 分组索引 为 整数型
        变量 计次2 为 整数型
        变量 通道属性 为 文本型
        弹出提示("发现服务")
        分组列表框1.清空所有数据()       
        计次 = 0
        判断循环首 计次 < 服务信息.取项目总数()               
                信息数组 = 服务信息.取项目(计次)
                分组索引 = 分组列表框1.添加分组("服务" & (计次 + 1),信息数组(0)) '信息数组中的第一个成员为服务,剩下的其他成员都是通道               
                计次2 = 0
                判断循环首 计次2 < 取数组成员数(信息数组)
                        如果 计次2 > 0 则
                                通道属性 = 取通道属性(信息数组(0),信息数组(计次2))
                                分组列表框1.添加子项(分组索引,"logo.png","通道" & 计次2 & "  " & 通道属性,信息数组(计次2),"","")
                        结束 如果
                        计次2 = 计次2 + 1
                判断循环尾
                计次 = 计次 + 1
        判断循环尾
结束 事件

函数 取通道属性(服务UUID 为 文本型,通道UUID 为 文本型)为 文本型
        变量 a 为 文本型
        变量 b 为 文本型
        变量 c 为 文本型
        如果 BLE蓝牙1.是否可读(服务UUID,通道UUID) = 真 则
                a = "可读、"
        否则       
                a = "不可读、"
        结束 如果
        如果 BLE蓝牙1.是否可写(服务UUID,通道UUID) = 真 则
                b = "可写、"
        否则       
                b = "不可写、"
        结束 如果
        如果 BLE蓝牙1.是否可读(服务UUID,通道UUID) = 真 则
                c = "可通知"
        否则       
                c = "不可通知"
        结束 如果       
        取通道属性 = a & b & c
结束 函数

事件 分组列表框1.子项被单击(分组索引 为 整数型,子项索引 为 整数型)
        变量 是否输入 为 逻辑型
        变量 输入内容 为 文本型
        如果 信息框2("选择","","读取数据","写入数据") = 0 则
                BLE蓝牙1.读取数据(分组列表框1.取分组信息(分组索引),分组列表框1.取子项信息(分组索引,子项索引))
        否则       
                输入内容 = 输入框("输入16进制","2C5B",是否输入)
                如果 是否输入 = 真 则
                        BLE蓝牙1.写入数据(分组列表框1.取分组信息(分组索引),分组列表框1.取子项信息(分组索引,子项索引),十六进制到字节集(输入内容))
                结束 如果
        结束 如果
结束 事件

事件 BLE蓝牙1.读取数据完毕(结果 为 整数型,服务UUID 为 文本型,通道UUID 为 文本型,数据 为 字节型())
        如果 结果 = 1 则
                弹出提示("读取数据成功:" & 通道UUID & "\n数据:" & 字节集到十六进制(数据))
        否则       
                弹出提示("读取数据失败:" & 通道UUID & "\n数据:" & 字节集到十六进制(数据))
        结束 如果       
结束 事件

事件 BLE蓝牙1.通道数据改变(服务UUID 为 文本型,通道UUID 为 文本型,数据 为 字节型())
        弹出提示("通道数据改变" & 通道UUID & "\n数据:" & 字节集到十六进制(数据))
结束 事件

事件 BLE蓝牙1.写入数据完毕(结果 为 整数型)
        如果 结果 = 1 则
                弹出提示("写入数据成功")
        否则       
                弹出提示("写入数据失败")
        结束 如果
结束 事件

事件 主窗口.按下某键(键代码 为 整数型,传址 屏蔽 为 逻辑型)
        如果 键代码 = 返回键 则
                BLE蓝牙1.释放资源()
                结束程序()               
        结束 如果
结束 事件



350、BLE蓝牙例程.rar

33.7 KB, 下载次数: 0

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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