dengxm2009 发表于 2015-8-16 19:15:21

单片机向串口发送汉字,超级终端为啥显示是乱码?

单片机向串口发送汉字,超级终端为啥显示是乱码?

效果如下:
绀哄姛浠浇鑽风數鍘嬫槸: 1497mV
Channel '1' voltage is 1835mV
Channel '2' voltage is 1270mV
鍔犻€熷害浼犳劅鍣ㄧ數鍘嬫槸: 2426mV
Channel '4' voltage is 1524mV
Channel '5' voltage is 4mV
Channel '6' voltage is 657mV
鐢垫睜鐢靛帇鏄? 2394mV
Channel '8' degree is 160.139800
绀哄姛浠浇鑽风數鍘嬫槸: 1497mV
Channel '1' voltage is 1835mV
Channel '2' voltage is 1270mV
鍔犻€熷害浼犳劅鍣ㄧ數鍘嬫槸: 2426mV
Channel '4' voltage is 1524mV
Channel '5' voltage is 4mV
Channel '6' voltage is 657mV
鐢垫睜鐢靛帇鏄? 2394mV
Channel '8' degree is 160.139800

jxcrg_t35 发表于 2015-8-16 20:22:02

看看是不是OXFD影响啊?

ksniper 发表于 2015-8-16 20:32:58

我往电脑发串口数据用Hterm中文就是乱码 用国产的串口软件就可以显示

Llinuxu 发表于 2015-8-16 20:35:28

编码问题

lxa0 发表于 2015-8-16 20:49:44

软件不支持中文~~~~~~~~~~~~

-阿发- 发表于 2015-8-16 23:03:31

换成串口调试助手应该就可以了吧。

steaven2000 发表于 2015-8-17 08:54:09

见下面的图片,不要勾选“传入数据转换位7ASCII码",就能正常显示中文了。
有些串口调试工具反而不能正常显示中文。

dengxm2009 发表于 2015-8-17 17:11:56

解决了,原来还是字符编码问题。
手工转码:

char sgy_jsd_volt={0xBC,0xD3,0xCB,0xD9,0xB6,0xC8,0xB5,0xE7,0xD1,0xB9,0xD6,0xB5,0xCA,0xC7,0x0};//“加速度电压值是”汉字转ASC码
char sgy_bat_volt={0xB5,0xE7,0xB3,0xD8,0xB5,0xE7,0xD1,0xB9,0xD6,0xB5,0xCA,0xC7,0x0};//“电池电压值是”汉字转ASC码
char sgy_tempre_volt={0xD0,0xBE,0xC6,0xAC,0xB5,0xC4,0xC4,0xDA,0xB2,0xBF,0xCE,0xC2,0xB6,0xC8,0xD6,0xB5,0xCA,0xC7,0x0};//“芯片温度值是”汉字转ASC码

sprintf(main_buf,"Channel '%d': %s   %5.1fmV\r\n",i,sgy_jsd_volt, voltage);
SimUart1_WriteString(main_buf,strlen(main_buf));


Channel '1' voltage is   4.8mV
Channel '2' voltage is   4.8mV
Channel '3': 加速度电压值是       9.6mV
Channel '4' voltage is   9.6mV
Channel '5' voltage is   0.0mV
Channel '6' voltage is   4.8mV
Channel '7': 电池电压值是   1134.1mV
Channel '8': 芯片的内部温度值是34.9
页: [1]
查看完整版本: 单片机向串口发送汉字,超级终端为啥显示是乱码?