OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/FPGA开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 305|回复: 7
打印 上一主题 下一主题

连续的GBK内码怎么取出相应字节转换成汉字

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2019-4-11
在线时间
8 小时
跳转到指定楼层
楼主
发表于 2019-4-11 22:54:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1金钱
我在做通过蓝牙与手机APP的通信,在蓝牙的例程中,USART3_RX_BUF接收到的是一连串的GBK内码,如0xcf0xe30xbd0xb6....,请问该如何取出相应字节,在LCD上显示出来汉字呢

最佳答案

查看完整内容[请看2#楼]

谢谢原子哥,已经解决了,用sscanf这个函数 sscanf("0xcf","%i",&MY_Buffer[0]); sscanf("0xe3","%i",&MY_Buffer[1]); Show_Str(30,280,200,16,MY_Buffer,16,0);
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2019-4-11
在线时间
8 小时
2#
 楼主| 发表于 2019-4-11 22:54:28 | 只看该作者
正点原子 发表于 2019-4-17 02:06
你直接看buf里面的内容。

谢谢原子哥,已经解决了,用sscanf这个函数
sscanf("0xcf","%i",&MY_Buffer[0]);
        sscanf("0xe3","%i",&MY_Buffer[1]);

        Show_Str(30,280,200,16,MY_Buffer,16,0);
回复

使用道具 举报

547

主题

10万

帖子

32

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
142627
金钱
142627
注册时间
2010-12-1
在线时间
1535 小时
3#
发表于 2019-4-13 02:24:35 | 只看该作者
自己写个简单的提取代码,实现即可。但是建议你先搞懂我们的汉字显示实验。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2019-4-11
在线时间
8 小时
4#
 楼主| 发表于 2019-4-14 21:09:48 | 只看该作者
正点原子 发表于 2019-4-13 02:24
自己写个简单的提取代码,实现即可。但是建议你先搞懂我们的汉字显示实验。

原子哥,这个汉字的显示我基本搞懂了,
                my_hz[0]=0xcf;
                my_hz[1]=0xe3;
                my_hz[2]=0xbd;
                my_hz[3]=0xb6;
                my_hz[4]=0x00;
                my_hz[5]=0x00;
                Show_Str(30,110,200,16,my_hz,16,0);
像这样就能显示了,但我的C基础有点差,从网上查了很久还是不会提取。该怎么从USART3_RX_BUF的数组里依次提取出四个字符,然后拼成这种GBK内码字符串呢。原子哥,您能给我一个思路吗
回复

使用道具 举报

547

主题

10万

帖子

32

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
142627
金钱
142627
注册时间
2010-12-1
在线时间
1535 小时
5#
发表于 2019-4-15 01:51:23 | 只看该作者
爝火 发表于 2019-4-14 21:09
原子哥,这个汉字的显示我基本搞懂了,
                my_hz[0]=0xcf;
                my_hz[1]=0xe3;

如果USART3_RX_BUF接收到的全部是GBK码,则直接传送给Sshow_str函数,即可正常显示
我是开源电子网www.bookbinnj.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2019-4-11
在线时间
8 小时
6#
 楼主| 发表于 2019-4-16 09:54:35 | 只看该作者
本帖最后由 爝火 于 2019-4-16 11:50 编辑
正点原子 发表于 2019-4-15 01:51
如果USART3_RX_BUF接收到的全部是GBK码,则直接传送给Sshow_str函数,即可正常显示

抱歉原子哥,我之前的描述有误,蓝牙传过来的是ASCII字符串
APP那边输入“香蕉”二字,蓝牙串口这边收到“0xcf0xe30xbd0xb6”的字符串

就比如u8 TXBuffer[16]="0xcf0xe30xbd0xb6";
调用   Show_Str(30,280,200,16,TXBuffer,16,0);
就只能显示0xcf0xe30xbd0xb6
但如果u8 TXBuffer[4]={0xcf,0xe3,0xbd,0xb6};
就可以显示汉字

怎么把字符串“0xcf”变成16进制的数0xcf呢


回复

使用道具 举报

547

主题

10万

帖子

32

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
142627
金钱
142627
注册时间
2010-12-1
在线时间
1535 小时
7#
发表于 2019-4-17 02:06:34 | 只看该作者
爝火 发表于 2019-4-16 09:54
抱歉原子哥,我之前的描述有误,蓝牙传过来的是ASCII字符串
APP那边输入“香蕉”二字,蓝牙串口这边收到 ...

你直接看buf里面的内容。
我是开源电子网www.bookbinnj.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

6

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2019-4-18
在线时间
0 小时
8#
发表于 2019-4-18 20:37:33 | 只看该作者
学到了
回复

使用道具 举报

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

本版积分规则



关闭

正点原子STM32/FPGA资料免费下载上一条 /1 下一条

正点原子公众号

QQ|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2019-7-13 11:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
三级片电影