标题: 可用的E4A蓝牙模块与手机通讯APP源代码及51单片机程序 [打印本页]

作者: 15240718601    时间: 2019-7-30 22:55
标题: 可用的E4A蓝牙模块与手机通讯APP源代码及51单片机程序
在51hei论坛里看见有好几个用E4A做蓝牙模块与手机通讯的,下载看看,连蓝牙都搜索不到,为此某为此特意献上一款可用的E4A源码以及51单片机源码,特以此供诸位检查及参考,制作多有随意,还请诸位君不要见怪为是!

小车做得有点随意,诸位君可不要介意



前言:此款蓝牙APP为自己在别人的基础上改进而来,主要特点是数据双向传输,单片机端可实现手机控制PWM占空比大小,从而实现无极调速,前后左右等等操作,可以回传单片机端的信号到手机上,只不过偶尔会丢字节,会易安卓的可以多多琢磨。至于说单片机的硬件怎么连接这个就不再多说,可以参考代码来实现硬件的连接!

蓝牙设备显示,搜索到自己的蓝牙后,点击即可连接。
有两种模式切换,超声波模式或蓝牙模式,当然无非就是单片机端怎么编程了!其实每一个按钮都发送一串唯一的数据,在此不累赘!
蓝牙模块可以回传数据到App上,
只不过偶尔会丢字节,这个不知为何,
若有大神,还请赐教!

//==========E4AAPK蓝牙代===============================================================//
变量 分割数据 为 文本型
变量 启动时间 为 长整数型
    变量 模式 为 整数型
    变量 前灯 为 整数型
事件 按钮6.被单击()
        判断 按钮6.标题
        分支 "搜索设备"
            列表框1.清空项目()
            蓝牙1.搜索设备() '搜索设备
            弹出提示("正在搜索")   
        分支 "断开连接"
        蓝牙1.断开连接() '退出处理,释放资源,结束内部处理线程
        丰富文本框1.内容=""
        编辑框1.内容=""
        编辑框2.内容=""
        速度调节.位置=50
        按钮6.标题="搜索设备"
    结束 判断
        
结束 事件

事件 主窗口.按下某键(键代码 为 整数型,传址 屏蔽 为 逻辑型)
        如果 键代码 = 返回键 则
        如果 取启动时间() - 启动时间 >2000 则
            弹出提示("再按一次退出程序")
            启动时间 = 取启动时间()
        否则
            结束程序()
        结束 如果
    结束 如果
结束 事件

事件 主窗口.创建完毕()
    列表框1.字体大小 = 6
    标签1.背景颜色=无色   
    列表框1.背景颜色=绿色
    模式=0   
    前灯=0
    蓝牙1.是否存在()
    判断 蓝牙1.是否存在()
        分支 假
            弹出提示("没有检测到蓝牙设备,程序将关闭")
            结束程序()
        分支 真
            判断 蓝牙1.是否已开启()
                分支 假
                    蓝牙1.开启蓝牙()
            结束 判断
            
    结束 判断
    保存窗口("主窗口",本对象) '本对象是当前窗口
                    
    保存窗口("窗口1",创建 窗口1)   
结束 事件

事件 蓝牙1.发现设备(设备名称 为 文本型,设备地址 为 文本型,是否已配对 为 逻辑型)
    列表框1.添加项目(设备名称 & "/" & 设备地址 & "/" & 是否已配对)   
结束 事件

事件 列表框1.表项被单击(项目索引 为 整数型)
    变量 设备信息 为 文本型
    变量 文本数组 为 文本型()
    变量 设备地址 为 文本型
    设备信息 = 列表框1.取项目内容(项目索引)
    文本数组 = 分割文本(设备信息,"/")
    设备地址 = 文本数组(1)
    弹出提示(设备地址)
    蓝牙1.连接设备(设备地址)         '连接设备 我看了有些例程是没有的   
    弹出提示("正在连接")

    蓝牙1.停止搜索()
   
结束 事件

事件 蓝牙1.连接完毕(连接结果 为 逻辑型,设备名称 为 文本型,设备地址 为 文本型,连接模式 为 整数型)
    变量 设备信息 为 文本型
    变量 文本数组 为 文本型()
    如果 连接结果 = 真 则
        标签1.标题 = "已连接:" & 设备名称 & "-" & 设备地址
        按钮6.标题="断开连接"   
        弹出提示("连接成功")
    否则
        弹出提示("连接失败")
        标签1.标题 = "已断开"
        按钮6.标题="搜索设备"
    结束 如果   
结束 事件

事件 蓝牙1.蓝牙设置完毕(设置结果 为 整数型)
    判断 设置结果
        分支 1 '开启蓝牙
            弹出提示("蓝牙已开启")
            蓝牙1.置可被发现() '置可被发现
        分支 2    '不开启蓝牙
            信息框("信息","蓝牙未被开启,程序将退出!","确定")
            结束程序()
        分支 3    '置可被发现
            弹出提示("蓝牙已设置为可被发现")
            蓝牙1.置工作模式(2) '蓝牙聊天模式
        分支 4    '不置可被发现
            信息框("信息","蓝牙未被设置为可被发现,程序将退出!","确定")
            结束程序()
    结束 判断   
结束 事件

事件 按钮1.被按下(横坐标 为 整数型,纵坐标 为 整数型)
        蓝牙1.发送数据(文本到字节("@lefth","GBK"))
结束 事件
事件 按钮1.被弹起(横坐标 为 整数型,纵坐标 为 整数型)
    蓝牙1.发送数据(文本到字节("@stoph","GBK"))
结束 事件

事件 按钮2.被按下(横坐标 为 整数型,纵坐标 为 整数型)
        蓝牙1.发送数据(文本到字节("@ahead","GBK"))
结束 事件
事件 按钮2.被弹起(横坐标 为 整数型,纵坐标 为 整数型)
    蓝牙1.发送数据(文本到字节("@stoph","GBK"))
结束 事件

事件 按钮3.被按下(横坐标 为 整数型,纵坐标 为 整数型)
        蓝牙1.发送数据(文本到字节("@right","GBK"))
结束 事件
事件 按钮3.被弹起(横坐标 为 整数型,纵坐标 为 整数型)
    蓝牙1.发送数据(文本到字节("@stoph","GBK"))
结束 事件

事件 按钮4.被按下(横坐标 为 整数型,纵坐标 为 整数型)
        蓝牙1.发送数据(文本到字节("@backh","GBK"))
结束 事件
事件 按钮4.被弹起(横坐标 为 整数型,纵坐标 为 整数型)
    蓝牙1.发送数据(文本到字节("@stoph","GBK"))
结束 事件

事件 按钮5.被单击()
        蓝牙1.发送数据(文本到字节("@stoph","GBK"))
结束 事件


事件 按钮7.被单击()
     蓝牙1.发送数据(文本到字节("@sgetd","GBK"))
     
结束 事件
事件 按钮9.被单击()
    判断 前灯
        分支 0
            前灯=1
            蓝牙1.发送数据(文本到字节("@ligh1","GBK"))
            按钮9.标题="前灯开"
        分支 1
            前灯=0
            蓝牙1.发送数据(文本到字节("@ligh0","GBK"))
            按钮9.标题="前灯关"
    结束 判断   
   
结束 事件
事件 按钮10.被按下(横坐标 为 整数型,纵坐标 为 整数型)
    蓝牙1.发送数据(文本到字节("@load0","GBK"))
结束 事件
事件 按钮10.被弹起(横坐标 为 整数型,纵坐标 为 整数型)
    蓝牙1.发送数据(文本到字节("@load1","GBK"))
结束 事件
事件 按钮8.被单击()
   
    判断 模式
        分支 0
            按钮8.标题="蓝牙模式"
            蓝牙1.发送数据(文本到字节("@mosh1","GBK"))
            模式=1
        分支 1
            按钮8.标题="超声波模式"
            蓝牙1.发送数据(文本到字节("@mosh0","GBK"))
            模式=0
    结束 判断
结束 事件

事件 速度调节.位置被改变(位置 为 整数型)
    如果 位置>9 且 位置<100 则  
    蓝牙1.发送数据(文本到字节("@spe"&整数到文本(位置),"GBK"))
    结束 如果
结束 事件
事件 蓝牙1.收到数据(数据 为 字节型(),设备名称 为 文本型,设备地址 为 文本型)
    变量 收到数据 为 文本型
   
    分割数据=字节到文本(数据,"GBK")
   
    丰富文本框1.内容 =丰富文本框1.内容 & "\r\n " & 字节到文本(数据,"GBK")
    丰富文本框1.置光标位置(取文本长度(丰富文本框1.内容))
   
     如果 寻找文本(分割数据,"rp",0) >0 则
'    标签2.标题=取文本中间(分割数据,2 ,4) &"m/s"
'    结束 如果
'    如果 寻找文本(分割数据,"dt",0) >= 0 则
'    标签3.标题=取文本中间(分割数据,2 ,4) &"cm"
          如果 寻找文本(分割数据,"dt",0) >0 则
          编辑框1.内容=取指定文本2(分割数据,"dt","cm")
          结束 如果
          如果 寻找文本(分割数据,"sp",0) >0 则
        编辑框2.内容=取指定文本2(分割数据,"sp","ms")
        结束 如果
     '标签2.标题="速度:"&分割数据 &"m/s"
'    否则如果 寻找文本(分割数据,"dt",0) >= 0 则
'     分割数据= 取文本右边(分割数据,3)
'    标签3.标题="距离:"&分割数据 &"cm"
    结束 如果
   
'=====================以下是接收单片机发送过来的16进制HEX数据的方法=======================   
'    变量 计次 为 整数型
'    判断循环首 计次 < 取数组成员数(数据)
'        编辑框1.内容 = 编辑框1.内容 & "  " & 到十六进制(数据(计次))
'        计次 = 计次 + 1
'    判断循环尾   
结束 事件

'事件 编辑框1.内容被改变(新内容 为 文本型)
'   
'结束 事件

事件 丰富文本框1.内容被改变(新内容 为 文本型)
   
结束 事件

事件 标签1.被单击()
   
结束 事件

事件 标签2.被单击()
   
结束 事件


事件 按钮11.被单击()
    如果 读取窗口("窗口1")=空 则
        保存窗口("窗口1",创建 窗口1)
    结束 如果
    切换窗口(读取窗口("窗口1"))
结束 事件


全部资料51hei下载地址:
蓝牙小车apk、51单片机源代码.rar (1.24 MB, 下载次数: 568)


作者: 越南超级人类    时间: 2019-7-31 10:08
终于看到中文编程的了,希望看到更多中文编程出现。为初学者(不懂英文)服务
作者: 15240718601    时间: 2019-7-31 11:32
越南超级人类 发表于 2019-7-31 10:08
终于看到中文编程的了,希望看到更多中文编程出现。为初学者(不懂英文)服务

确实,感谢创造中文编程的大神,支持!
作者: zhangfan46147    时间: 2019-8-5 18:39
终于看到中文编程的了,希望看到更多中文编程出现。为初学者(不懂英文)服务
作者: 1368088682    时间: 2019-9-7 11:01
很完整,值得下载学习
作者: 283326736    时间: 2019-12-8 10:59
谢谢共享。。。。。。。。。
作者: xiaodian88    时间: 2020-2-29 22:48
学习了 正感兴趣
作者: 123451    时间: 2020-3-4 16:10

终于看到中文编程的了,希望看到更多中文编程出现。为初学者(不懂英文)服务
作者: abcdefbcdef    时间: 2020-4-4 00:37
好东西,正在到处找,不过也要挣点黑币啊
作者: EE_Duan    时间: 2020-4-9 17:53
值得下载学习
作者: qwthh    时间: 2020-4-13 21:33
请问UP有没有E4A,我的说是免费版,提示那个,可有偿请教您,我也是要实现PWM调速,
作者: gaojiaxin123    时间: 2020-5-26 12:22
我的HC05模块连接手机蓝牙失败,请问您知道原因吗?
作者: s6155555s    时间: 2020-7-2 10:22
非常感谢大佬分享,非常有用!
作者: liangker    时间: 2020-9-15 20:54
蓝牙小车apk、51单片机源代码.rar (1.24 MB, 下载次数: 230)
作者: aking991    时间: 2020-9-18 08:32
看似不错,下载下来学习一下,谢谢分享
作者: czhy0417    时间: 2020-10-30 11:03
中文编程厉害了,膜拜
作者: DK.mo    时间: 2020-12-13 11:41
gaojiaxin123 发表于 2020-5-26 12:22
我的HC05模块连接手机蓝牙失败,请问您知道原因吗?

请问您连接不上蓝牙模块问题解决了吗
作者: 15240718601    时间: 2021-3-29 22:33
qwthh 发表于 2020-4-13 21:33
请问UP有没有E4A,我的说是免费版,提示那个,可有偿请教您,我也是要实现PWM调速,

E4A可以免费使用,但是功能和服务肯定没有购买版权的好

作者: 15240718601    时间: 2021-3-29 22:36
gaojiaxin123 发表于 2020-5-26 12:22
我的HC05模块连接手机蓝牙失败,请问您知道原因吗?

用手机链接蓝牙模块,你的蓝牙模块先和手机进行配对好才能连,你要知道蓝牙的初始密码
作者: 15240718601    时间: 2021-3-29 22:37
DK.mo 发表于 2020-12-13 11:41
请问您连接不上蓝牙模块问题解决了吗

你也链接不上吗
作者: 1285574579    时间: 2021-4-20 13:18
APP写的非常好
作者: zhenyu    时间: 2022-2-18 10:12
这东西好,有学习价值,某一个宝上好像要花钱买的。
作者: mimidog111    时间: 2022-2-22 13:26
很完整,值得下载学习
作者: qidiao007    时间: 2022-3-11 09:50
你好 能不能用这个蓝牙

作者: Martinku    时间: 2022-3-25 10:29
这个中文编程牛啊。
作者: 56783333    时间: 2024-4-2 15:04
终于看到中文编程的了,希望看到更多中文编程出现,厉害了
作者: 1621359699    时间: 2024-6-5 10:07

你好 能不能用这个蓝牙




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1