通过蓝牙发送数据如何才能得到16进制数据?

jibeizhidian 2012-08-31 10:54:23
比如 我想发送 0xaa 0x55 0xbb, 在下位机方面接收到这些数据,但是由于都是有符号数超过0x80的 就发送错误的数据,不知道有没有什么办法解决?
...全文
657 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jibeizhidian 2012-09-25
  • 打赏
  • 举报
回复
谢谢各位。
hslinux 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

byte强制转换也不行,他把大于0x80的都当成负数,有符号的数,发送出去的 和单片机串口通讯很难搞啊
[/Quote]

下位机处理问题,下位机没有unsigned byte,unsigned int这样的类型吗?

0xXX这些本来就是16进制数据。

至于一个BYTE 的数据,要作为正数还是负数,还不是程序处理的问题?
cy2015yc 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
谢谢楼上 现在是这样做的,但是 2个问题
1.这样实际通讯速度等于慢了1半
2.如果是和现成的外部串口设备(不能改接收程序的)这样就不行了。
不知道 还有没有别的法子
[/Quote]
我也做过一些串口通讯的程序,没有遇到过楼主说的问题,上次回帖只是我的一个想法而已。说一下我平时如何处理串口发送的数据,比如数据是0xaa 0x55 0xbb,那么发送前我会做如下处理:
0xaa&0x0FF 0x55&0x0FF 0xbb&0x0FF,这样做可以把高位扩展的1变成0。
jibeizhidian 2012-09-22
  • 打赏
  • 举报
回复
谢谢楼上 现在是这样做的,但是 2个问题
1.这样实际通讯速度等于慢了1半
2.如果是和现成的外部串口设备(不能改接收程序的)这样就不行了。
不知道 还有没有别的法子
cy2015yc 2012-09-21
  • 打赏
  • 举报
回复
楼主考虑把一个byte分成两个byte发,高4位和低4位分别存放在一个byte中
比如0xaa 0x55 0xbb 就变成0x0a 0x0a 0x05 0x05 0x0b 0x0b
接收端两个一组再拼起来
jibeizhidian 2012-09-21
  • 打赏
  • 举报
回复
byte强制转换也不行,他把大于0x80的都当成负数,有符号的数,发送出去的 和单片机串口通讯很难搞啊
映映 2012-09-01
  • 打赏
  • 举报
回复
不超过0x80就没事么?强制转换为byte试试
coderandroid 2012-09-01
  • 打赏
  • 举报
回复
蓝牙石有协议的吧

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧