关于从串口(com口)接收ascii 码 的问题 (搞了一整天没搞出来)
搞了一整天, 头都晕了,还是没找到解决办法问题是这样的,
我从 串口 获取 数据(ascii码)
$instr = _CommGetString()
如果 msg(0,"",$instr)
显示一通乱码
其实串口是在不停的发送“+000375218” 这个ascii码
现在我想让他正常的显示“+000375218” 这个样子
不让他显示乱码, 该怎么办啊? 时间越长,$instr 从串口 获得的数据会越来越多 就变成“+000375218+000375218+000375218+000375218”
有时候 这些都能正常显示出来,
有些时候 就显示成 “&&ΖS揝
Z倐倸邯拪?Z?
倐毢獟娐Z倐?
毢獟娐Z倐倸?
獟娐Z倐倸邯?
娐Z倐倸邯拪?
Z倐倸邯拪?
Z倐倸邯拪?Z?
倐毢獟娐Z倐”
这样的乱码了 或者 用什么办法可以 让 $instr 里的内容 始终以 ascii码存在,不要自动转换成汉字(unicode ?) 其实,我是要对$instr进行如下操作
$a=StringInStr($instr, "+")
$b = $a +1
$c = StringMid($instr, $b, 6)
MsgBox(0, "", $c)
获取 “+”号 后面的 六位数字 高手!!!看看等结果 作个记号,以后有需要再来看看 UNICODE应该有兼容问题吧? 出现这个问题的原因在于 串口上不断的发来ascii码(二进制数),而我去接收的时候 却不一定是从第一位开始接收的,所以可能出现从中间某一位开始接收, 这样,由于01排列的循序不同了,导致不能显示正确的ascii码,所以就产生了乱码。
页:
[1]