微信蓝牙小程序,连接蓝牙模块收发数据。遇到的问题:我连接成功之后发现服务值下面两个特征值一个只能读一个只能写,然后点击读的那个一直收到同一个字,点击发送无论发什么内容只能收到同一个中文字,目前怀疑是进制转换的问题或者是没有做到利用两个特征值进行读写
这是代码运行结果:点击能读的特征值就会接收到耀这个字,点击输入框无论发送什么都会接收到肀这个字
以下是lanya.js代码:
<!-- <button bindtap="openAdapter">初始化蓝牙模块</button> -->
<!-- <button bindtap="discoverDevices">开始搜寻附近的蓝牙设备</button> -->
<button bindtap="getDevices">获得周边蓝牙设备</button>
<!-- 一个一个遍历准备连接设备:点击设备名称即可链接 -->
<view wx:if="{{showFlage}}" wx:for="{{devices}}" wx:for-item="device" wx:key="key" bindtap="create" data-index="{{index}}">
<view style="width: 750rpx;height:100rpx;color:gray;">{{device.name}} {{device.deviceId}}
</view>
</view>
<view wx:if="{{showFlage1}}">蓝牙设备:{{name}} {{deviceId}}</view>
<view wx:if="{{showFlage1}}">点击下面服务值获得特征值</view>
<!-- 判断是哪个服务值像之前判断是哪个蓝牙设备那样 -->
<view wx:for="{{services}}" wx:for-item="service" wx:key="key" bindtap="choise" data-index="{{index}}">
<!-- 将它遍历出来,把id提出来-->
<view wx:if="{{showFlage1}}" style="color: hotpink;">服务值:{{service.uuid}}</view>
</view>
<view wx:if="{{showFlage2}}">点击下面特征值读写数据</view>
<!-- 一个服务值里面有好多特征值,需要数据索引,添加点击事件 -->
<view wx:if="{{showFlage2}}" style="color: blue;" wx:for="{{characteristics}}" wx:for-item="characteristic" wx:key="key" bindtap="select"data-index="{{index}}">
<view>特征值:{{characteristic.uuid}} read:{{characteristic.properties.read}} write:{{characteristic.properties.write}}</view>
</view>
<button bindtap="disconnect">断开连接并返回</button>
<!-- 在输入框上面写入提示 -->
<view style="background-color: lightgray;">请输入数据:
<!-- 设置不能刚进入小程序就显示能够输入数据,利用showkeyboard来设置,改变键盘发送按键,并在点击完成时触发-->
<input style="height: 100rpx;width: 750rpx;" focus = "{{showKeyboard}}" confirm-type="send" bindconfirm="sendData" disabled="{{inputKey}}"></input>
</view>
<view>接收到的数据:</view>
<view>{{showData}}</view>
下面是js代码:
这是代码运行结果:点击能读的特征值就会接收到耀这个字,点击输入框无论发送什么都会接收到肀这个字
以下是lanya.js代码:
<!-- <button bindtap="openAdapter">初始化蓝牙模块</button> -->
<!-- <button bindtap="discoverDevices">开始搜寻附近的蓝牙设备</button> -->
<button bindtap="getDevices">获得周边蓝牙设备</button>
<!-- 一个一个遍历准备连接设备:点击设备名称即可链接 -->
<view wx:if="{{showFlage}}" wx:for="{{devices}}" wx:for-item="device" wx:key="key" bindtap="create" data-index="{{index}}">
<view style="width: 750rpx;height:100rpx;color:gray;">{{device.name}} {{device.deviceId}}
</view>
</view>
<view wx:if="{{showFlage1}}">蓝牙设备:{{name}} {{deviceId}}</view>
<view wx:if="{{showFlage1}}">点击下面服务值获得特征值</view>
<!-- 判断是哪个服务值像之前判断是哪个蓝牙设备那样 -->
<view wx:for="{{services}}" wx:for-item="service" wx:key="key" bindtap="choise" data-index="{{index}}">
<!-- 将它遍历出来,把id提出来-->
<view wx:if="{{showFlage1}}" style="color: hotpink;">服务值:{{service.uuid}}</view>
</view>
<view wx:if="{{showFlage2}}">点击下面特征值读写数据</view>
<!-- 一个服务值里面有好多特征值,需要数据索引,添加点击事件 -->
<view wx:if="{{showFlage2}}" style="color: blue;" wx:for="{{characteristics}}" wx:for-item="characteristic" wx:key="key" bindtap="select"data-index="{{index}}">
<view>特征值:{{characteristic.uuid}} read:{{characteristic.properties.read}} write:{{characteristic.properties.write}}</view>
</view>
<button bindtap="disconnect">断开连接并返回</button>
<!-- 在输入框上面写入提示 -->
<view style="background-color: lightgray;">请输入数据:
<!-- 设置不能刚进入小程序就显示能够输入数据,利用showkeyboard来设置,改变键盘发送按键,并在点击完成时触发-->
<input style="height: 100rpx;width: 750rpx;" focus = "{{showKeyboard}}" confirm-type="send" bindconfirm="sendData" disabled="{{inputKey}}"></input>
</view>
<view>接收到的数据:</view>
<view>{{showData}}</view>
下面是js代码: