添加蓝牙通讯功能

下面是WinCE中蓝牙协议栈的架构图:

可以看到,HCI传输层以上的协议层全部由WinCE实现了,所以蓝牙模块只需要实现了基带层和链路管理层,并提供HCI传输接口给WinCE就可以了。WinCE支持使用USB、UART、SDIO等接口的蓝牙模块。

开发板上使用的是CSR-BC4-EXT-C2-PA蓝牙模块,模块接在串口0上。使用CSR的BCSP传输协议。以下是配置方法:

1 添加Bluetooth Stack with Universal Loadable Driver

2 注册表配置

[HKEY_LOCAL_MACHINE/Software/Microsoft/Bluetooth/Transports/BuiltIn/1]

    "driver"="bthcsr.dll"

    "flags"=dword:4

    "name"="COM0:"

    "baud"=dword:1c200

    "resetdelay"=dword:1388

使用COM0,波特率115200。

3 配置PSKEY

先用BlueFlash烧写固件,然后用PSTool配置PSKEY,只要配置HOST_INTERFACE和UART_BAUDRATE就可以了,其他按默认配置。

PSKEY_HOST_INTERFACE: UART link running BCSP

PSKEY_UART_BAUDRATE:  115.2kbaud

4 添加文件传输服务

1) 在PB里增加OBEX inbox和OBEX File Browser组件

2) 修改注册表:

; @CESYSGEN IF SERVERS_MODULES_OBEXFILE

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Obex/Services/{f9ec7bc4-953c-11d2-984e-525400dc9e09}]

    "BaseDir"="//Temp//Ftp" ;默认根目录.对方可见目录

    "Server"="obexfile.dll"

    "canWrite" = dword:1   ;可访问,可读写

    "authenticate"= dword:0

    "transport authentiate" = dword:0

    ; @CESYSGEN IF CE_MODULES_BTD

    "BluetoothSdpRecord"=hex:35,41,09,00,01,35,03,19,11,06,09,00,04,35,11,35,/

    03,19,01,00,35,05,19,00,03,08,0a,35,03,19,00,08,/

    09,00,06,35,09,09,65,6e,09,00,6a,09,01,00,09,00,/

    09,35,08,35,06,19,11,06,09,01,00,09,01,00,25,03,/

    46,54,50

    ; @CESYSGEN ENDIF CE_MODULES_BTD

; @CESYSGEN ENDIF SERVERS_MODULES_OBEXFILE

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,关于 Android Studio 中的通讯,我可以为您提供一些基本的信息。 首先,在 Android Studio 中使用通讯需要使用 Android 的 Bluetooth API。您需要在 AndroidManifest.xml 文件中添加以下权限: ```xml <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> ``` 然后,在您的 Activity 中,您需要获取 BluetoothAdapter 对象并启用: ```java BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (bluetoothAdapter == null) { // 设备不支持 } else { if (!bluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); } } ``` 接下来,您需要搜索并连接到设备。您可以使用 BluetoothDevice 类搜索设备: ```java BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); Set<BluetoothDevice> bondedDevices = bluetoothAdapter.getBondedDevices(); for (BluetoothDevice device : bondedDevices) { // 搜索到已配对的设备 } ``` 或者,您可以使用 BluetoothAdapter 类的 startDiscovery() 方法搜索附近的设备: ```java BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); bluetoothAdapter.startDiscovery(); ``` 一旦您找到了设备,您可以使用 BluetoothSocket 类与其进行通讯: ```java BluetoothDevice device = ...; BluetoothSocket socket = device.createRfcommSocketToServiceRecord(uuid); socket.connect(); ``` 最后,您可以使用 InputStream 和 OutputStream 类来读取和写入数据: ```java InputStream inputStream = socket.getInputStream(); OutputStream outputStream = socket.getOutputStream(); byte[] buffer = new byte[1024]; int numBytes = inputStream.read(buffer); ``` 这只是通讯的基本步骤,您还可以使用许多其他的 Bluetooth API 来实现更高级的功能。希望这些信息对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值