LCD液晶屏初始化和蓝牙socket初始化连接完成以后,便可以通过蓝牙发送图像和字符数据。蓝牙接收显示图像和字符两个部分的程序类似,都是通过调用函数recv或者read读取主机发来的命令,经过程序判断然后以相同的方式接收数据。字符部分数据接收和显示参考程序如下:

该段程序利用接收到的字符数据得到对应的显示字库数据,然后通过frambuffer显示接口显示到LCD液晶屏上面。源程序带有显示字库文件,该文件通过编译并嵌入可执行代码,然后下载到显示终端文件系统。系统这里只添加了英文字库和对应的显示代码,可以正常显示英文字符。如果需要,通过添加中文字库和少量显示代码就可以很方便地实现中文字符的显示。图像部分程序则是将接收到的位图数据通过frambuffer显示接口直接显示到LCD液晶屏上面。

为了在显示终端的Linux操作系统上使用蓝牙协议栈,需要在交叉编译嵌入式Linux内核时将所需的蓝牙支持选项选上,并将所需的Bluez蓝牙库编译安装到终端文件系统中。用户应用程序同样通过交叉编译得到可执行代码,然后下载到终端文件系统运行。

该系统可以应用在公共信息显示屏,如大厅广告信息屏、建筑物提示标志等地方,可以避免有线连接的缺陷。系统通过扩展后还可以同移动电话、PDA、无线耳机、无线扬声器交换数据。

4结论

在嵌入式Linux操作系统上通过已有的蓝牙协议栈进行蓝牙开发,通过蓝牙协议层无线收发数据,可以不用关心蓝牙底层驱动的实现。用户可以通过各种上层协议进行更复杂的通信,通过蓝牙SCO协议层还可以发送音频数据。因此嵌入式Linux操作系统平台上进行蓝牙无线显示屏系统的开发较为方便,并且具有扩展性能好的优点。