找回密码
 加入
搜索
查看: 4972|回复: 7

[网络通信] 关于从串口(com口)接收ascii 码 的问题 (搞了一整天没搞出来)

[复制链接]
发表于 2010-6-14 18:21:55 | 显示全部楼层 |阅读模式
搞了一整天, 头都晕了,还是没找到解决办法

问题是这样的,

我从 串口 获取 数据(ascii码)

$instr = _CommGetString()

如果 msg(0,"",$instr)

显示一通乱码
其实串口是在不停的发送“+000375218” 这个ascii码

现在我想让他正常的显示“+000375218” 这个样子

不让他显示乱码, 该怎么办啊?
 楼主| 发表于 2010-6-14 18:26:38 | 显示全部楼层
时间越长,$instr 从串口 获得的数据会越来越多 就变成“+000375218+000375218+000375218+000375218”
有时候 这些都能正常显示出来,

有些时候 就显示成 “&&ΖS揝
Z倐倸邯拪?Z?
倐毢獟娐Z倐?
毢獟娐Z倐倸?
獟娐Z倐倸邯?
娐Z倐倸邯拪?
Z倐倸邯拪?
Z倐倸邯拪?Z?
倐毢獟娐Z倐”

这样的乱码了
 楼主| 发表于 2010-6-14 18:35:11 | 显示全部楼层
或者 用什么办法可以 让 $instr 里的内容 始终以 ascii码存在,不要自动转换成汉字(unicode ?)
 楼主| 发表于 2010-6-14 18:41:34 | 显示全部楼层
其实,我是要对  $instr  进行如下操作

$a=StringInStr($instr, "+")
$b = $a +1
$c = StringMid($instr, $b, 6)
MsgBox(0, "", $c)


获取 “+”号 后面的 六位数字
发表于 2010-6-14 19:02:32 | 显示全部楼层
高手!!!看看等结果
发表于 2010-6-14 19:20:02 | 显示全部楼层
作个记号,以后有需要再来看看
发表于 2010-6-14 20:46:53 | 显示全部楼层
UNICODE应该有兼容问题吧?
 楼主| 发表于 2010-6-20 16:11:26 | 显示全部楼层
出现这个问题的原因在于 串口上不断的发来ascii码(二进制数),而我去接收的时候 却不一定是从第一位开始接收的,所以可能出现从中间某一位开始接收, 这样,由于01排列的循序不同了,导致不能显示正确的ascii码,所以就产生了乱码。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 22:30 , Processed in 0.149640 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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