极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12311|回复: 6

求助 arduino的蓝牙串口怎么接受汉字

[复制链接]
发表于 2014-8-6 09:59:12 | 显示全部楼层 |阅读模式
如题,手机的蓝牙和蓝牙模块通信,蓝牙模块连接arduino。通过arduino软件的串口观测窗口可以看到,手机发的字符可以接收,但是发出的汉字不能接收。求助应该怎么编码
回复

使用道具 举报

发表于 2014-8-6 10:16:52 | 显示全部楼层
其一,汉字是双字节的,还原汉字需要双字节处理.其二,终端必须带有汉字库,否则收到代码也无法还原行字.如果需要固定的简单的汉字,可以在单片机内固定造几个字的字库.也可以将行字转成BitMap下发.(当图形处理)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-6 10:59:04 | 显示全部楼层
林定祥 发表于 2014-8-6 10:16
其一,汉字是双字节的,还原汉字需要双字节处理.其二,终端必须带有汉字库,否则收到代码也无法还原行字.如果需 ...

我把收到的字节转成整数型输出,但是得到三个整数,这三个整数不是汉字的内码,他们遵循的是什么协议?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-6 11:01:41 | 显示全部楼层
林定祥 发表于 2014-8-6 10:16
其一,汉字是双字节的,还原汉字需要双字节处理.其二,终端必须带有汉字库,否则收到代码也无法还原行字.如果需 ...

我有字库芯片,现在要能知道汉字对应的内码或着是国际码就应该能换算成汉字,但是内码和国际码都是4个十六进制的数,而我这个整数类型转换得到了9个十进制的数,他们之间也不相等。请问他们之间是怎么换算的?
回复 支持 反对

使用道具 举报

发表于 2014-8-6 11:18:32 | 显示全部楼层
wpeng121 发表于 2014-8-6 11:01
我有字库芯片,现在要能知道汉字对应的内码或着是国际码就应该能换算成汉字,但是内码和国际码都是4个十六 ...

你要看一下字库芯片的编码,你发送端送过去的搞不好是 unicode,字库的是 gb?

建议你先用写的直接码让字库显示一下,然后发送端送一下这个码看看是否正常

最后想办法做转换吧
回复 支持 反对

使用道具 举报

发表于 2014-8-6 12:06:31 | 显示全部楼层
如果用一個一個 byte 去傳送, 跟是否有中文完全無關的.

所以, 先要確定是那裡出錯.
1) 是否完整發送出來 (這個可以先用 byte array 把資料接收了, 再以 hex 形式看看數據是否有問題, 同時可以確認一下是 double byte 還是 unicode 的中文.)
2) 接收的時候是否以 byte 的形式接收 (為免不必要的轉換影響, 先以 byte 的形式把資料接收, 再自行分析把文字拆出來)
3) 接收到的資料如何轉換顯示

回复 支持 反对

使用道具 举报

发表于 2014-8-6 12:18:54 | 显示全部楼层
如果汉字不多的话,可以自己约定一个简单的协议嘛……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-14 22:32 , Processed in 0.070725 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表