請(qǐng)問下,現(xiàn)在使用HID_Keyboard_peripheral這個(gè)工程,怎么判斷當(dāng)前是使用的hid服務(wù)還是peripheral服務(wù),想要實(shí)現(xiàn)如果當(dāng)前是hid,就發(fā)送鍵值到文本,如果是peripheral就通過SIMPLEPROFILE_SERV_UUID 協(xié)議通信發(fā)送數(shù)組
你好,BLE HID服務(wù)UUID為0x1812(標(biāo)準(zhǔn)規(guī)范),主機(jī)搜索到掃描應(yīng)答包可以通過此區(qū)分。
我們要做的應(yīng)用是,ch592去判斷當(dāng)前與主機(jī)連接的是什么服務(wù),功能是如果與主機(jī)連接的是hid 有按鍵按下就發(fā)送傳感器值如圖一,如果是peripheral服務(wù) 按鍵不生效,如主機(jī)app發(fā)送通信協(xié)議,則返回?cái)?shù)據(jù)如圖二,現(xiàn)在不知道判斷
你好,如果基于HID設(shè)備添加peripheral的讀寫通知功能,直接參考你現(xiàn)在手上的這份代碼即可。實(shí)現(xiàn)的功能邏輯就是連接手機(jī)端APP,則默認(rèn)為NOTI的數(shù)據(jù)透傳功能。代碼即你手上目前已有的;
如果是HID功能和peripheral功能分開,那就是分開對(duì)應(yīng)代碼進(jìn)行初始化的。初始化的時(shí)候注意廣播包填寫的數(shù)據(jù),將名稱做好區(qū)分,這樣主機(jī)在搜索到的時(shí)候可以判斷為是何種設(shè)備。或者在初始化的時(shí)候進(jìn)行切換,如按下1按鍵則HID功能,按下2按鍵則為peripheral功能,那就是根據(jù)按鍵做區(qū)分了??梢愿鶕?jù)復(fù)位狀態(tài)寄存器判斷復(fù)位原因進(jìn)行區(qū)分。留個(gè)郵箱提供一篇博客參考。
基于HID設(shè)備添加peripheral的讀寫通知功能 “實(shí)現(xiàn)的功能邏輯就是連接手機(jī)端APP,則默認(rèn)為NOTI的數(shù)據(jù)透傳功能”,怎么判斷它是與主機(jī)的藍(lán)牙直接連接還是與手機(jī)端APP
個(gè)人信息保護(hù),已隱藏
基于HID設(shè)備添加讀寫通知功能不需要做區(qū)分,因?yàn)檫@是在HID里面添加的服務(wù),所以本質(zhì)上沒有區(qū)分。直接進(jìn)行使用即可,系統(tǒng)藍(lán)牙連接直接會(huì)上傳鍵值,APP連接可以進(jìn)行透傳功能。
郵件已發(fā)送,請(qǐng)查收。
我們之前有款產(chǎn)品用的其它藍(lán)牙芯片比較簡單也是HID鍵盤+數(shù)據(jù)傳輸服務(wù)能判斷出當(dāng)前使用的是那個(gè)服務(wù)
“”直接進(jìn)行使用即可,系統(tǒng)藍(lán)牙連接直接會(huì)上傳鍵值,APP連接可以進(jìn)行透傳功能。“”這個(gè)出現(xiàn)了APP連接但是按鍵值也在發(fā)送的問題
有兩種方式處理:
①基于HID設(shè)備增加一個(gè)服務(wù),包含read/write/noti的透傳功能,也就是你之前收到的代碼。
在使用APP連接后,會(huì)枚舉出所有的服務(wù),其中包含了透傳。因此可以使用APP連接實(shí)現(xiàn)透傳功能。
同時(shí)HID上傳鍵值也在,但是使用APP連接,所以系統(tǒng)不會(huì)表現(xiàn)有鍵值出現(xiàn)。實(shí)際的HID對(duì)應(yīng)服務(wù)會(huì)有數(shù)據(jù)收到。如果不需要這個(gè)上傳鍵值,在APP連接后,可以先通過noti下發(fā)一個(gè)字節(jié),然后芯片收到數(shù)據(jù)后立馬關(guān)閉HID上傳鍵值的TMOS任務(wù)。
②在HID增加peripheral的功能,即最新發(fā)給你的代碼。
上電復(fù)位和外部手動(dòng)復(fù)位,執(zhí)行HID功能;按下PB22執(zhí)行軟復(fù)位,執(zhí)行peripheral功能。這兩者功能是獨(dú)立的。
如果還是存在問題,請(qǐng)直接發(fā)送郵件至郵箱lpc@wch.cn,我們提供對(duì)應(yīng)的技術(shù)支持。
HID_Keyboard_peripheral這個(gè)工程peripheral藍(lán)牙數(shù)據(jù)包最大只有20個(gè)字節(jié),怎么修改這個(gè)最大長度
這里修改一下:
還有一個(gè)問題,使用默認(rèn)MAC地址uuid為ffe0的服務(wù)就枚舉不出來,換成自定義MAC就能枚舉
理論上是不會(huì)出現(xiàn)該情況的,我們也基本上使用默認(rèn)的MAC
你把自定義的MAC改成跟默認(rèn)的一樣試試看,看下是否跟周圍別的MAC地址重合。
自定義的MAC改成跟默認(rèn)的一樣 就會(huì)枚舉不出ffe0
周圍也查沒有與它相同的MAC地址