|
在51hei論壇里看見有好幾個(gè)用E4A做藍(lán)牙模塊與手機(jī)通訊的,下載看看,連藍(lán)牙都搜索不到,為此某為此特意獻(xiàn)上一款可用的E4A源碼以及51單片機(jī)源碼,特以此供諸位檢查及參考,制作多有隨意,還請(qǐng)諸位君不要見怪為是!
小車做得有點(diǎn)隨意,諸位君可不要介意
0.png (397.94 KB, 下載次數(shù): 163)
下載附件
2019-7-30 23:36 上傳
QQ截圖20190730225100.png (197.44 KB, 下載次數(shù): 166)
下載附件
2019-7-30 22:53 上傳
前言:此款藍(lán)牙APP為自己在別人的基礎(chǔ)上改進(jìn)而來,主要特點(diǎn)是數(shù)據(jù)雙向傳輸,單片機(jī)端可實(shí)現(xiàn)手機(jī)控制PWM占空比大小,從而實(shí)現(xiàn)無極調(diào)速,前后左右等等操作,可以回傳單片機(jī)端的信號(hào)到手機(jī)上,只不過偶爾會(huì)丟字節(jié),會(huì)易安卓的可以多多琢磨。至于說單片機(jī)的硬件怎么連接這個(gè)就不再多說,可以參考代碼來實(shí)現(xiàn)硬件的連接!
藍(lán)牙設(shè)備顯示,搜索到自己的藍(lán)牙后,點(diǎn)擊即可連接。
有兩種模式切換,超聲波模式或藍(lán)牙模式,當(dāng)然無非就是單片機(jī)端怎么編程了!其實(shí)每一個(gè)按鈕都發(fā)送一串唯一的數(shù)據(jù),在此不累贅!
藍(lán)牙模塊可以回傳數(shù)據(jù)到App上,
只不過偶爾會(huì)丟字節(jié),這個(gè)不知為何,
若有大神,還請(qǐng)賜教!
//==========E4AAPK藍(lán)牙代===============================================================//
變量 分割數(shù)據(jù) 為 文本型
變量 啟動(dòng)時(shí)間 為 長整數(shù)型
變量 模式 為 整數(shù)型
變量 前燈 為 整數(shù)型
事件 按鈕6.被單擊()
判斷 按鈕6.標(biāo)題
分支 "搜索設(shè)備"
列表框1.清空項(xiàng)目()
藍(lán)牙1.搜索設(shè)備() '搜索設(shè)備
彈出提示("正在搜索")
分支 "斷開連接"
藍(lán)牙1.斷開連接() '退出處理,釋放資源,結(jié)束內(nèi)部處理線程
豐富文本框1.內(nèi)容=""
編輯框1.內(nèi)容=""
編輯框2.內(nèi)容=""
速度調(diào)節(jié).位置=50
按鈕6.標(biāo)題="搜索設(shè)備"
結(jié)束 判斷
結(jié)束 事件
事件 主窗口.按下某鍵(鍵代碼 為 整數(shù)型,傳址 屏蔽 為 邏輯型)
如果 鍵代碼 = 返回鍵 則
如果 取啟動(dòng)時(shí)間() - 啟動(dòng)時(shí)間 >2000 則
彈出提示("再按一次退出程序")
啟動(dòng)時(shí)間 = 取啟動(dòng)時(shí)間()
否則
結(jié)束程序()
結(jié)束 如果
結(jié)束 如果
結(jié)束 事件
事件 主窗口.創(chuàng)建完畢()
列表框1.字體大小 = 6
標(biāo)簽1.背景顏色=無色
列表框1.背景顏色=綠色
模式=0
前燈=0
藍(lán)牙1.是否存在()
判斷 藍(lán)牙1.是否存在()
分支 假
彈出提示("沒有檢測(cè)到藍(lán)牙設(shè)備,程序?qū)㈥P(guān)閉")
結(jié)束程序()
分支 真
判斷 藍(lán)牙1.是否已開啟()
分支 假
藍(lán)牙1.開啟藍(lán)牙()
結(jié)束 判斷
結(jié)束 判斷
保存窗口("主窗口",本對(duì)象) '本對(duì)象是當(dāng)前窗口
保存窗口("窗口1",創(chuàng)建 窗口1)
結(jié)束 事件
事件 藍(lán)牙1.發(fā)現(xiàn)設(shè)備(設(shè)備名稱 為 文本型,設(shè)備地址 為 文本型,是否已配對(duì) 為 邏輯型)
列表框1.添加項(xiàng)目(設(shè)備名稱 & "/" & 設(shè)備地址 & "/" & 是否已配對(duì))
結(jié)束 事件
事件 列表框1.表項(xiàng)被單擊(項(xiàng)目索引 為 整數(shù)型)
變量 設(shè)備信息 為 文本型
變量 文本數(shù)組 為 文本型()
變量 設(shè)備地址 為 文本型
設(shè)備信息 = 列表框1.取項(xiàng)目內(nèi)容(項(xiàng)目索引)
文本數(shù)組 = 分割文本(設(shè)備信息,"/")
設(shè)備地址 = 文本數(shù)組(1)
彈出提示(設(shè)備地址)
藍(lán)牙1.連接設(shè)備(設(shè)備地址) '連接設(shè)備 我看了有些例程是沒有的
彈出提示("正在連接")
藍(lán)牙1.停止搜索()
結(jié)束 事件
事件 藍(lán)牙1.連接完畢(連接結(jié)果 為 邏輯型,設(shè)備名稱 為 文本型,設(shè)備地址 為 文本型,連接模式 為 整數(shù)型)
變量 設(shè)備信息 為 文本型
變量 文本數(shù)組 為 文本型()
如果 連接結(jié)果 = 真 則
標(biāo)簽1.標(biāo)題 = "已連接:" & 設(shè)備名稱 & "-" & 設(shè)備地址
按鈕6.標(biāo)題="斷開連接"
彈出提示("連接成功")
否則
彈出提示("連接失敗")
標(biāo)簽1.標(biāo)題 = "已斷開"
按鈕6.標(biāo)題="搜索設(shè)備"
結(jié)束 如果
結(jié)束 事件
事件 藍(lán)牙1.藍(lán)牙設(shè)置完畢(設(shè)置結(jié)果 為 整數(shù)型)
判斷 設(shè)置結(jié)果
分支 1 '開啟藍(lán)牙
彈出提示("藍(lán)牙已開啟")
藍(lán)牙1.置可被發(fā)現(xiàn)() '置可被發(fā)現(xiàn)
分支 2 '不開啟藍(lán)牙
信息框("信息","藍(lán)牙未被開啟,程序?qū)⑼顺觯?quot;,"確定")
結(jié)束程序()
分支 3 '置可被發(fā)現(xiàn)
彈出提示("藍(lán)牙已設(shè)置為可被發(fā)現(xiàn)")
藍(lán)牙1.置工作模式(2) '藍(lán)牙聊天模式
分支 4 '不置可被發(fā)現(xiàn)
信息框("信息","藍(lán)牙未被設(shè)置為可被發(fā)現(xiàn),程序?qū)⑼顺觯?quot;,"確定")
結(jié)束程序()
結(jié)束 判斷
結(jié)束 事件
事件 按鈕1.被按下(橫坐標(biāo) 為 整數(shù)型,縱坐標(biāo) 為 整數(shù)型)
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@lefth","GBK"))
結(jié)束 事件
事件 按鈕1.被彈起(橫坐標(biāo) 為 整數(shù)型,縱坐標(biāo) 為 整數(shù)型)
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@stoph","GBK"))
結(jié)束 事件
事件 按鈕2.被按下(橫坐標(biāo) 為 整數(shù)型,縱坐標(biāo) 為 整數(shù)型)
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@ahead","GBK"))
結(jié)束 事件
事件 按鈕2.被彈起(橫坐標(biāo) 為 整數(shù)型,縱坐標(biāo) 為 整數(shù)型)
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@stoph","GBK"))
結(jié)束 事件
事件 按鈕3.被按下(橫坐標(biāo) 為 整數(shù)型,縱坐標(biāo) 為 整數(shù)型)
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@right","GBK"))
結(jié)束 事件
事件 按鈕3.被彈起(橫坐標(biāo) 為 整數(shù)型,縱坐標(biāo) 為 整數(shù)型)
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@stoph","GBK"))
結(jié)束 事件
事件 按鈕4.被按下(橫坐標(biāo) 為 整數(shù)型,縱坐標(biāo) 為 整數(shù)型)
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@backh","GBK"))
結(jié)束 事件
事件 按鈕4.被彈起(橫坐標(biāo) 為 整數(shù)型,縱坐標(biāo) 為 整數(shù)型)
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@stoph","GBK"))
結(jié)束 事件
事件 按鈕5.被單擊()
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@stoph","GBK"))
結(jié)束 事件
事件 按鈕7.被單擊()
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@sgetd","GBK"))
結(jié)束 事件
事件 按鈕9.被單擊()
判斷 前燈
分支 0
前燈=1
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@ligh1","GBK"))
按鈕9.標(biāo)題="前燈開"
分支 1
前燈=0
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@ligh0","GBK"))
按鈕9.標(biāo)題="前燈關(guān)"
結(jié)束 判斷
結(jié)束 事件
事件 按鈕10.被按下(橫坐標(biāo) 為 整數(shù)型,縱坐標(biāo) 為 整數(shù)型)
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@load0","GBK"))
結(jié)束 事件
事件 按鈕10.被彈起(橫坐標(biāo) 為 整數(shù)型,縱坐標(biāo) 為 整數(shù)型)
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@load1","GBK"))
結(jié)束 事件
事件 按鈕8.被單擊()
判斷 模式
分支 0
按鈕8.標(biāo)題="藍(lán)牙模式"
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@mosh1","GBK"))
模式=1
分支 1
按鈕8.標(biāo)題="超聲波模式"
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@mosh0","GBK"))
模式=0
結(jié)束 判斷
結(jié)束 事件
事件 速度調(diào)節(jié).位置被改變(位置 為 整數(shù)型)
如果 位置>9 且 位置<100 則
藍(lán)牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)("@spe"&整數(shù)到文本(位置),"GBK"))
結(jié)束 如果
結(jié)束 事件
事件 藍(lán)牙1.收到數(shù)據(jù)(數(shù)據(jù) 為 字節(jié)型(),設(shè)備名稱 為 文本型,設(shè)備地址 為 文本型)
變量 收到數(shù)據(jù) 為 文本型
分割數(shù)據(jù)=字節(jié)到文本(數(shù)據(jù),"GBK")
豐富文本框1.內(nèi)容 =豐富文本框1.內(nèi)容 & "\r\n " & 字節(jié)到文本(數(shù)據(jù),"GBK")
豐富文本框1.置光標(biāo)位置(取文本長度(豐富文本框1.內(nèi)容))
如果 尋找文本(分割數(shù)據(jù),"rp",0) >0 則
' 標(biāo)簽2.標(biāo)題=取文本中間(分割數(shù)據(jù),2 ,4) &"m/s"
' 結(jié)束 如果
' 如果 尋找文本(分割數(shù)據(jù),"dt",0) >= 0 則
' 標(biāo)簽3.標(biāo)題=取文本中間(分割數(shù)據(jù),2 ,4) &"cm"
如果 尋找文本(分割數(shù)據(jù),"dt",0) >0 則
編輯框1.內(nèi)容=取指定文本2(分割數(shù)據(jù),"dt","cm")
結(jié)束 如果
如果 尋找文本(分割數(shù)據(jù),"sp",0) >0 則
編輯框2.內(nèi)容=取指定文本2(分割數(shù)據(jù),"sp","ms")
結(jié)束 如果
'標(biāo)簽2.標(biāo)題="速度:"&分割數(shù)據(jù) &"m/s"
' 否則如果 尋找文本(分割數(shù)據(jù),"dt",0) >= 0 則
' 分割數(shù)據(jù)= 取文本右邊(分割數(shù)據(jù),3)
' 標(biāo)簽3.標(biāo)題="距離:"&分割數(shù)據(jù) &"cm"
結(jié)束 如果
'=====================以下是接收單片機(jī)發(fā)送過來的16進(jìn)制HEX數(shù)據(jù)的方法=======================
' 變量 計(jì)次 為 整數(shù)型
' 判斷循環(huán)首 計(jì)次 < 取數(shù)組成員數(shù)(數(shù)據(jù))
' 編輯框1.內(nèi)容 = 編輯框1.內(nèi)容 & " " & 到十六進(jìn)制(數(shù)據(jù)(計(jì)次))
' 計(jì)次 = 計(jì)次 + 1
' 判斷循環(huán)尾
結(jié)束 事件
'事件 編輯框1.內(nèi)容被改變(新內(nèi)容 為 文本型)
'
'結(jié)束 事件
事件 豐富文本框1.內(nèi)容被改變(新內(nèi)容 為 文本型)
結(jié)束 事件
事件 標(biāo)簽1.被單擊()
結(jié)束 事件
事件 標(biāo)簽2.被單擊()
結(jié)束 事件
事件 按鈕11.被單擊()
如果 讀取窗口("窗口1")=空 則
保存窗口("窗口1",創(chuàng)建 窗口1)
結(jié)束 如果
切換窗口(讀取窗口("窗口1"))
結(jié)束 事件
0.png (13.67 KB, 下載次數(shù): 147)
下載附件
2019-7-30 23:34 上傳
0.png (8 KB, 下載次數(shù): 170)
下載附件
2019-7-30 23:34 上傳
全部資料51hei下載地址:
藍(lán)牙小車apk、51單片機(jī)源代碼.rar
(1.24 MB, 下載次數(shù): 568)
2019-7-30 22:41 上傳
點(diǎn)擊文件名下載附件
E4A藍(lán)牙單片機(jī)小車源碼 下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|