用串口接收数据(字符格式),内容是单片机传送回来的整形数据,接收后用Mid()函数对其进行分析处理,但其中出现诸如"?"这样的非法字符,使Mid函数操作失败,请问高手如何解决这种问题?

解决方案 »

  1.   

    改成以2进制形式接收。
    单片机发送串行数据本来就是2进制模式,所以PC端最好不要图省事,用文本方式接收、发送。
    另外,2进制到字符串的转换非常简单,利用variant类型的变量即可,比如:
    dim v as variant
    dim b() as byte  '不定长byte型数组
    dim s as string字符串到2进制
    v=s
    b=v2进制到字符串
    v=b
    s=v
      

  2.   

    非法字符"?"是ASCII码大于128的字符,不能显示,你将串口的数据接受设置成2进制格式,再处理