基于藍(lán)牙技術(shù)的無(wú)線顯示屏系統(tǒng)設(shè)計(jì)
LCD液晶屏初始化和藍(lán)牙socket初始化連接完成以后,便可以通過(guò)藍(lán)牙發(fā)送圖像和字符數(shù)據(jù)。藍(lán)牙接收顯示圖像和字符兩個(gè)部分的程序類(lèi)似,都是通過(guò)調(diào)用函數(shù)recv或者read讀取主機(jī)發(fā)來(lái)的命令,經(jīng)過(guò)程序判斷然后以相同的方式接收數(shù)據(jù)。字符部分?jǐn)?shù)據(jù)接收和顯示參考程序如下:本文引用地址:http://butianyuan.cn/article/157552.htm
該段程序利用接收到的字符數(shù)據(jù)得到對(duì)應(yīng)的顯示字庫(kù)數(shù)據(jù),然后通過(guò)frambuffer顯示接口顯示到LCD液晶屏上面。源程序帶有顯示字庫(kù)文件,該文件通過(guò)編譯并嵌入可執(zhí)行代碼,然后下載到顯示終端文件系統(tǒng)。系統(tǒng)這里只添加了英文字庫(kù)和對(duì)應(yīng)的顯示代碼,可以正常顯示英文字符。如果需要,通過(guò)添加中文字庫(kù)和少量顯示代碼就可以很方便地實(shí)現(xiàn)中文字符的顯示。圖像部分程序則是將接收到的位圖數(shù)據(jù)通過(guò)fram-buffer顯示接口直接顯示到LCD液晶屏上面。
為了在顯示終端的Linux操作系統(tǒng)上使用藍(lán)牙協(xié)議棧,需要在交叉編譯嵌入式Linux內(nèi)核時(shí)將所需的藍(lán)牙支持選項(xiàng)選上,并將所需的Bluez藍(lán)牙庫(kù)編譯安裝到終端文件系統(tǒng)中。用戶(hù)應(yīng)用程序同樣通過(guò)交叉編譯得到可執(zhí)行代碼,然后下載到終端文件系統(tǒng)運(yùn)行。
該系統(tǒng)可以應(yīng)用在公共信息顯示屏,如大廳廣告信息屏、建筑物提示標(biāo)志等地方,可以避免有線連接的缺陷。系統(tǒng)通過(guò)擴(kuò)展后還可以同移動(dòng)電話、PDA、無(wú)線耳機(jī)、無(wú)線揚(yáng)聲器交換數(shù)據(jù)。
4 結(jié)論
在嵌入式Linux操作系統(tǒng)上通過(guò)已有的藍(lán)牙協(xié)議棧進(jìn)行藍(lán)牙開(kāi)發(fā),通過(guò)藍(lán)牙協(xié)議層無(wú)線收發(fā)數(shù)據(jù),可以不用關(guān)心藍(lán)牙底層驅(qū)動(dòng)的實(shí)現(xiàn)。用戶(hù)可以通過(guò)各種上層協(xié)議進(jìn)行更復(fù)雜的通信,通過(guò)藍(lán)牙SCO協(xié)議層還可以發(fā)送音頻數(shù)據(jù)。因此嵌入式Linux操作系統(tǒng)平臺(tái)上進(jìn)行藍(lán)牙無(wú)線顯示屏系統(tǒng)的開(kāi)發(fā)較為方便,并且具有擴(kuò)展性能好的優(yōu)點(diǎn)。
評(píng)論