strcpy();乱码!乱码!乱码!求助

ARROW2010 2010-12-09 01:24:31
#include <REG51.h>
unsigned char idata buf[64];
...
...
...

strcpy( buf, "今天的数据到此结束\0xd\0xa" );
sendstringtoPC(buf); // send string to PC


语句执行后

通过串口助手在电脑显示的结果是“今天的ADC示莸酱私崾”为什么会是乱码呢?
我是C语言新手,希望知道的侠人指点一下,问题出在哪?谢谢
...全文
747 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
ARROW2010 2010-12-10
  • 打赏
  • 举报
回复
用WINHEX看了看收到的数据,显示的东东确实如14楼所言,强烈学习了!
小的初入江湖,想不到有如此多的C界大哥支力,实出小的意料,甚谢!
赶明早我闻鸡起舞继续调试调试,看看能否解决问题,不行再努力!
cranium 2010-12-09
  • 打赏
  • 举报
回复
串口...路过留名做标记
就想叫yoko 2010-12-09
  • 打赏
  • 举报
回复
学习了[Quote=引用 16 楼 xuangong9794 的回复:]
汉字的显示通常要使用 unicode 编码方式,通常是两个字节表示一个汉字,所以你的问题不是字符串结束的问题,你用unsigned short类型定义你的数组
[/Quote]
heminrui 2010-12-09
  • 打赏
  • 举报
回复
路过,学习了
xuangong9794 2010-12-09
  • 打赏
  • 举报
回复
汉字的显示通常要使用 unicode 编码方式,通常是两个字节表示一个汉字,所以你的问题不是字符串结束的问题,你用unsigned short类型定义你的数组
screwzm 2010-12-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q191201771 的回复:]

"今天的数据到此结束\0xd\0xa"改成"今天的数据到此结束\0xd\0xa\0"
[/Quote]
哥,这个会自动的加'\0'好不?
用户 昵称 2010-12-09
  • 打赏
  • 举报
回复

//
ansi_string ( "今天的数据到此结束" )
//--
ansi_string convert utf16-little-endian format input data to ansi format
//--
input = CA 4E 29 59 84 76 70 65 6E 63 30 52 64 6B D3 7E 5F 67
//--
output = BD F1 CC EC B5 C4 CA FD BE DD B5 BD B4 CB BD E1 CA F8
//


// 今天的数据到此结束
0xBD, 0xF1, 0xCC, 0xEC, 0xB5, 0xC4, 0xCA, 0xFD, 0xBE, 0xDD, 0xB5, 0xBD, 0xB4, 0xCB, 0xBD, 0xE1, 0xCA, 0xF8,


http://www.baidu.com/s?bs=keil+%D6%D0%CE%C4+%C2%D2%C2%EB+%B2%B9%B6%A1&f=8&wd=keil+0xfd

用户 昵称 2010-12-09
  • 打赏
  • 举报
回复
没什么事情,就是keil的问题,你用的版本太低
ARROW2010 2010-12-09
  • 打赏
  • 举报
回复
我用的是KEIL编译的 是不是需要改Configraion里的String的font
请问5楼大侠,用什么字符集才可能显示正确?谢了!
ARROW2010 2010-12-09
  • 打赏
  • 举报
回复
谢谢,楼上各位指点,我试了一下,只要把汉字改成英文显示就是正确的了,可能是汉字字符编码的问题?不知道有什么办法可以解决,希望侠人继续指点,
  • 打赏
  • 举报
回复
2楼正解,缺少字串结束字符。
赵4老师 2010-12-09
  • 打赏
  • 举报
回复
漏码。
由同步错误引起。
注意设置正确的串口参数:波特率、是否奇偶校验、停止位……
张无印 2010-12-09
  • 打赏
  • 举报
回复
2楼正解,缺少字串结束字符。
walkersfaint 2010-12-09
  • 打赏
  • 举报
回复
应该是字符编码,根据你的编译环境看看你的串口的比特率是多少?
3h随然吧 2010-12-09
  • 打赏
  • 举报
回复
你编译环境是什么字符集的
thegreatone 2010-12-09
  • 打赏
  • 举报
回复
把buf改成char型试试
wyfwx 2010-12-09
  • 打赏
  • 举报
回复
字符编码问题
wasx1 2010-12-09
  • 打赏
  • 举报
回复
字符串要用结束标识符‘\0’
就想叫yoko 2010-12-09
  • 打赏
  • 举报
回复
"今天的数据到此结束\0xd\0xa"改成"今天的数据到此结束\0xd\0xa\0"

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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