这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 关于汉字发送的问题

共7条 1/1 1 跳转至

关于汉字发送的问题

工程师
2014-07-09 15:36:49     打赏

遇到一个问题,想请教一下大家,谢谢了。

硬件方面,单片机和外围的CAN电路。

现在想实现的功能,编写程序,想通过CAN总线,把汉字发送出去,借助CAN转232,把发送的数据在电脑的串口助手上显示出来。

遇到的问题,当单片机发送数字和字母的时候,是正常的,但是发送汉字的时候显示是乱码。每个汉字都有对应GB2312码,我的发送程序如下:

 canTxMessage.data[0]=0xe0f0;
 canTxMessage.data[1]=0xe0f1;其中0xe0f0和0xe0f1,均为相应的汉字对应的GB2312码。

这样写程序,在串口助手上显示收到的数据是乱码。

查资料后,说是因为没有相应的字符芯片,所以单片机发送出来的数据是乱码,也有的说需要把汉字写到存储器里面。也有的说,如果发送汉字,直接把汉字放到字符串里面就可以。但是用双引号把汉字括起来之后,再向外发送,在电脑上显示的仍然是乱码。

编程方面很弱智,请大家帮帮忙。谢谢了。


高工
2014-07-09 16:11:06     打赏
2楼

先看看是你的程序问题还是编译器是不是支持汉字编码。

例如你写的

 canTxMessage.data[0]=0xe0f0;
 canTxMessage.data[1]=0xe0f1;

先不用直接写汉字的方式,先发数字,

这两个发出去,你在串口接收那儿用16进制方式看,是不是还是0xe0f0和0xe0f1。

如果不是这两个数字了,说明你的程序有问题。



高工
2014-07-09 20:33:59     打赏
3楼
汉字都是转化为对应的数值进行发送的,一般调试助手可以自动解析的

院士
2014-07-09 21:57:16     打赏
4楼

这个东西真心不知道。

一直对显示汉字不明白原理


工程师
2014-07-11 22:38:43     打赏
5楼
好的,谢谢您,我会重新试一下的。

工程师
2014-07-11 22:40:30     打赏
6楼
嗯,问了一下说是每个汉字都有对应的编码,常见的就是GB2312码,但是直接发送他们的GB2312码还是收不到汉字。是不是有专门的汉字编码芯片。

工程师
2014-07-11 22:41:07     打赏
7楼
汉字显示有专门的汉字编码芯片,大家一块学习,谢谢您。

共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]