我读取到串口的数据是乱码,使用串口助手 以十六进制显示 是正确的 如02 03 05 e5 dc 03,请问在代码中怎么实现了,我读取到串口数据是十六进制的 用字符串保存的,急急 请求帮助,纠结一个星期了
解决方案 »
- android viewpager滑动到最右的一个标签自动向左滑动
- Android手机编程初学者问题
- SurfaceView设置背景颜色遮挡问题
- RelativeLayout 怎么在java代码里设置大小 Height
- Android橡皮擦
- 请教大家在windows下编译和在Linux下编译有啥区别?
- android上的webkit浏览器,兼容性问题
- 新人想问下android音乐播放器如何实现边下载边播放的功能
- APP底部四个按钮,TABhost,点击tab中的acrivity跳转在tab内进行,也就是说下面的TAB按钮始终存在。求解决
- Android Studio代码不执行变化
- 应用无法再eclipse正常运行
- android摇杆制作
int len = HardwareControler.read(fd, buf, 256); //读取串口数据 String string = new String(buf, 0, len);//将数据组成一个字符串 //从单片机发回给我的数据是十六进制的。
try {
tv.append(string); //显示在界面的是乱码
} catch (Exception e) {
// TODO: handle exception
}
new readThread().start();// 处理完消息后立即开启监听线程
枑悙拵憭?
悡槑晵
:悙悜棎巧
:悙悜棎巧
:悙悜棎巧
:悙悜棎巧要得到的是40 80 02 91 90 91 92 99 8E 93 92 F0 03 0D 0A 02 96 90 90 90 92 8E 91 92 E9 03 0D 0A 02 A3 90 90 93 98 8E 95 92 03 03 0D 0A 02 3A 90 90 90 91 97 90 C7 C9 03 0D 0A 02 3A 90 90 90 91 97 90 C7 这是我用串口助手十六进制显示的结果。
private static char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f'};
public static String digestToHex(byte[] bytes){
StringBuilder sb = new StringBuilder();
for (byte b : bytes){
sb.append(hexDigits[b>>4&0x0F]);
sb.append(hexDigits[b&0x0F]);
}
return sb.toString();
}