crazyowen 发表于 2010-6-14 18:21:55

关于从串口(com口)接收ascii 码 的问题 (搞了一整天没搞出来)

搞了一整天, 头都晕了,还是没找到解决办法

问题是这样的,

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

$instr = _CommGetString()

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

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

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

不让他显示乱码, 该怎么办啊?

crazyowen 发表于 2010-6-14 18:26:38

时间越长,$instr 从串口 获得的数据会越来越多 就变成“+000375218+000375218+000375218+000375218”
有时候 这些都能正常显示出来,

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

这样的乱码了

crazyowen 发表于 2010-6-14 18:35:11

或者 用什么办法可以 让 $instr 里的内容 始终以 ascii码存在,不要自动转换成汉字(unicode ?)

crazyowen 发表于 2010-6-14 18:41:34

其实,我是要对$instr进行如下操作

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


获取 “+”号 后面的 六位数字

rikthhpgf2005 发表于 2010-6-14 19:02:32

高手!!!看看等结果

auto 发表于 2010-6-14 19:20:02

作个记号,以后有需要再来看看

拉风晓晓 发表于 2010-6-14 20:46:53

UNICODE应该有兼容问题吧?

crazyowen 发表于 2010-6-20 16:11:26

出现这个问题的原因在于 串口上不断的发来ascii码(二进制数),而我去接收的时候 却不一定是从第一位开始接收的,所以可能出现从中间某一位开始接收, 这样,由于01排列的循序不同了,导致不能显示正确的ascii码,所以就产生了乱码。
页: [1]
查看完整版本: 关于从串口(com口)接收ascii 码 的问题 (搞了一整天没搞出来)