String Fr="5A A5 04 01 00 05 AA";
String Ba="5A A5 04 02 00 06 AA";
String Le="5A A5 04 00 01 05 AA";
String Ri="5A A5 04 00 02 06 AA";
String St="5A A5 04 00 00 04 AA";
我现在要用蓝牙串口发十六进制数据给单片机,数据格式就是上面这样,求指点怎么发送上面这五条数据。
android蓝牙如何发送十六进制数据
答案:3 悬赏:10 手机版
解决时间 2021-04-05 14:16
- 提问者网友:感性作祟
- 2021-04-04 18:52
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2019-05-12 14:03
发送十六进制数要转换成二进制才能发送。
16进制转为二进制,方法就是一分四,即一个十六进制数分成四个二进制数,用四位二进制按权相加,最后得到二进制,小数点依旧即可。
希望我能帮助你解疑释惑。
16进制转为二进制,方法就是一分四,即一个十六进制数分成四个二进制数,用四位二进制按权相加,最后得到二进制,小数点依旧即可。
希望我能帮助你解疑释惑。
全部回答
- 1楼网友:玩世
- 2021-02-09 22:14
确切讲你说到的发送是service下的write特性.
1. 传入数据前都需要将字符串转换成byte类型数组,然后crc校对;
2. 校对无误后拼入;
3. 这是转换工具类:
public static byte[] hexStringToBytes(String hexString) {
if (hexString == null || hexString.equals("")) {
return null;
}
hexString = hexString.toUpperCase();
int length = hexString.length() / 2;
char[] hexChars = hexString.toCharArray();
byte[] d = new byte[length];
for (int i = 0; i < length; i++) {
int pos = i * 2;
d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
}
return d;
}
4. 结合serviceUUID, characterUUID,写入蓝牙设备即可.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯