鄙人用Windows下的Putty或者和Linux下的Minicom通过串口控制另外一台机器,已经成功也毫无问题。
因为想到需要自己控制要发送的数据,所以用SerialPort类写自己的接收发送程序:
东西其实很简单,最主要是接收部分,也就是扔个控件进去,网上抄了一段接收数据的代码而已。
但是接收回来的数据跟Putty和Minicom接收的很不一样,最主要是出现不明代码,如下:1.有人会说出现乱码可能是波特率设置不对,可这应该不算乱码,只是不知道什么编码,而且在Putty和Minicom上都正常,我在想不知道是不是这些串口软件进行过处理。
2.这个问题看似是发送端和接收端编码不一致。但是我用SerialPort类接收端的机器是纯英文的系统,发送下面这段代码发送端也是纯英文的,下面那段代码也只是进入了BIOS(可以看到很多BIOS设置相关的词语),应该跟系统语言没有什么关系吧。
3.我在考虑这些编码有没有什么特别的意思,我可不可以一个一个地把它还原回来呢?望编写过串口通信的高人指点一下,十分感激!989999999D9CB4B4B4B4B499A0A2B2?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             B2Version 2.14.1219. Copyright (C) 2011 American Megatrends, Inc.                 BIOS Date: 12/27/2012 17:04:02 Ver: 3250E011                                    Press <DEL> or <F2> to enter setup.                                             Entering Setup...                                                               A9AB       Aptio Setup Utility - Copyright (C) 2011 American Megatrends, Inc.           Main  Advanced  Chipset  Boot  Security  Save & Exit  Server Mgmt           /----------------------------------------------------+-------------------------\|  BIOS Information                                  |Choose the system        ||  BIOS Vendor             American Megatrends       |default language         ||  Core Version            4.6.5.3                   |                         ||  Compliancy              UEFI 2.1; PI 1.2          |                         ||  Project Version         3250E011 x64              |                         ||  Build Date and Time     12/27/2012 17:04:02       |                         ||                                                    |                         ||  Memory Information                                |                         ||  Total Memory            2048 MB (DDR3 1333)       |                         ||                                                    |-------------------------||  System Language         [English]                 |><: Select Screen        ||                                                    |^v: Select Item          ||  System Date             [Wed 06/26/2013]          |Enter: Select            ||  System Time             [07:29:26]                |+/-: Change Opt.         ||                                                    |F1: General Help         ||  Access Level            Administrator             |F2: Previous Values      ||                                                    |F3: Optimized Defaults   ||                                                    |F4: Save & Exit          ||                                                    |ESC: Exit                |\----------------------------------------------------+-------------------------/        Version 2.14.1219. Copyright (C) 2011 American Megatrends, Inc.        |       /- Load Previous Values \|                       |  |  | Load Previous Values? |  |  |                       |  |-----------------------|  |           |     Yes     No        |  \-----------------------/                           C#串口 SerialPort 编码串口  SerialPort编码

解决方案 »

  1.   

    如果确定乱码的话,也有可能是通讯干扰之类的,检查线路做好屏蔽。
    串口通讯跟操作系统BIos应该没有太大关系吧。
    你那一堆是从哪来的?串口发送的数据还是接受数据?
    我这边有调试串口工具,需要的可以找我,你首先要检查通讯幼儿米有问题。
      

  2.   

    HooverHuang兄你好,我用同样的硬件,换成Putty和Minicom,显示没有问题,以下是同一个界面的图片:
    我估计这些代码是像Linux那样设置背景和字体颜色的,不过不知道哪里能查阅到这些资料。
      

  3.   

    高手就是高手,发的东西我们菜鸟不懂
    求大神帮忙:http://bbs.csdn.net/topics/390501016
      

  4.   

    989999999D9CB4[1;
    这个是根据分号把他变成字节流吧。
      

  5.   


    谢谢你的思路,可是带了中括号,查不出这些编码的含义……
    中括号也是由16进制变成了字符串的结果,
    [1 =这个数据变成 0x1b 0x5b 0x32 ox4a 0x1b ox5b 0x31 七个字节,上面的有两个字节是非打印字符。
    那你要看他这上面是什么协议了。就是把上面那一串变成byte[] 发送到那端口就是了
      

  6.   


    谢谢你的思路,可是带了中括号,查不出这些编码的含义……
    中括号也是由16进制变成了字符串的结果,
    [1 =这个数据变成 0x1b 0x5b 0x32 ox4a 0x1b ox5b 0x31 七个字节,上面的有两个字节是非打印字符。
    那你要看他这上面是什么协议了。就是把上面那一串变成byte[] 发送到那端口就是了别见笑,其实我不是很明白5个字符和7个字节的对应关系,怎么5个变成7个了,莫非是有两个是非打印字符的关系?没道理啊,没打印出来的你怎么知道呢?,,,,还好,这个我找找资料恶补一下吧。
    但是,如果能打印的字符都打印出来了,那么[2J[1这种字符对于我来说就毫无意义了,我怎么才能知道那些字符有意义,哪些字符没意义呢?Putty为什么能分析得那么清楚,它跟我接收到的数据应该是一样的吧?还有,你能列举一个你知道的协议给我么?有点罗嗦,不好意思~
      

  7.   


    谢谢你的思路,可是带了中括号,查不出这些编码的含义……
    中括号也是由16进制变成了字符串的结果,
    [1 =这个数据变成 0x1b 0x5b 0x32 ox4a 0x1b ox5b 0x31 七个字节,上面的有两个字节是非打印字符。
    那你要看他这上面是什么协议了。就是把上面那一串变成byte[] 发送到那端口就是了别见笑,其实我不是很明白5个字符和7个字节的对应关系,怎么5个变成7个了,莫非是有两个是非打印字符的关系?没道理啊,没打印出来的你怎么知道呢?,,,,还好,这个我找找资料恶补一下吧。
    但是,如果能打印的字符都打印出来了,那么[2J[1这种字符对于我来说就毫无意义了,我怎么才能知道那些字符有意义,哪些字符没意义呢?Putty为什么能分析得那么清楚,它跟我接收到的数据应该是一样的吧?还有,你能列举一个你知道的协议给我么?有点罗嗦,不好意思~因为你贴的那段代码是有些字节是非打印字符,所以看不到,你要放到VS里去看就知了对于意义,你要看他有没有提供通信协议,要没有神人也无法知道是怎么一回事。