鄙人用Windows下的Putty或者和Linux下的Minicom通过串口控制另外一台机器,已经成功也毫无问题。
因为想到需要自己控制要发送的数据,所以用SerialPort类写自己的接收发送程序:
东西其实很简单,最主要是接收部分,也就是扔个控件进去,网上抄了一段接收数据的代码而已。
但是接收回来的数据跟Putty和Minicom接收的很不一样,最主要是出现不明代码,如下:1.有人会说出现乱码可能是波特率设置不对,可这应该不算乱码,只是不知道什么编码,而且在Putty和Minicom上都正常,我在想不知道是不是这些串口软件进行过处理。
2.这个问题看似是发送端和接收端编码不一致。但是我用SerialPort类接收端的机器是纯英文的系统,发送下面这段代码发送端也是纯英文的,下面那段代码也只是进入了BIOS(可以看到很多BIOS设置相关的词语),应该跟系统语言没有什么关系吧。
3.我在考虑这些编码有没有什么特别的意思,我可不可以一个一个地把它还原回来呢?望编写过串口通信的高人指点一下,十分感激![2J[1;1H[25;78H98[1;1H[25;78H99[1;1H[25;78H99[1;1H[25;78H99[1;1H[25;78H9D[1;1H[25;78H9C[1;1H[25;78HB4[1;1H[25;78HB4[1;1H[25;78HB4[1;1H[25;78HB4[1;1H[25;78HB4[1;1H[25;78H99[1;1H[25;78HA0[1;1H[25;78HA2[1;1H[25;78HB2[1;1H[0m[1m?[2J[1;1H B2[1;1H[0;37;40m[2J[1;1H[1;1HVersion 2.14.1219. Copyright (C) 2011 American Megatrends, Inc. [2;1HBIOS Date: 12/27/2012 17:04:02 Ver: 3250E011 [3;1H[3;1HPress <DEL> or <F2> to enter setup. [4;1H[4;1HEntering Setup... [25;78HA9[5;1H[2J[1;37;40m[2J[1;37;44m[2J[25;78HAB[1;1H[1;1H[1;1H Aptio Setup Utility - Copyright (C) 2011 American Megatrends, Inc. [2;1H[0;37;44m [0;34;47m Main [0;37;44m Advanced Chipset Boot Security Save & Exit Server Mgmt [3;1H[0;34;47m/----------------------------------------------------+-------------------------\[4;1H| [0;30;47mBIOS Information [0;34;47m |Choose the system |[5;1H| [1;30;47mBIOS Vendor[0;34;47m [1;30;47mAmerican Megatrends[0;34;47m |default language |[6;1H| [1;30;47mCore Version[0;34;47m [1;30;47m4.6.5.3[0;34;47m | |[7;1H| [1;30;47mCompliancy[0;34;47m [1;30;47mUEFI 2.1; PI 1.2[0;34;47m | |[8;1H| [1;30;47mProject Version[0;34;47m [1;30;47m3250E011 x64[0;34;47m | |[9;1H| [1;30;47mBuild Date and Time[0;34;47m [1;30;47m12/27/2012 17:04:02[0;34;47m | |[10;1H| | |[11;1H| [0;30;47mMemory Information [0;34;47m | |[12;1H| [1;30;47mTotal Memory[0;34;47m [1;30;47m2048 MB (DDR3 1333)[0;34;47m | |[13;1H| |-------------------------|[14;1H| [1;37;47mSystem Language[0;34;47m [1;37;47m[English][0;34;47m |><: Select Screen |[15;1H| |^v: Select Item |[16;1H| System Date [Wed 06/26/2013] |Enter: Select |[17;1H| System Time [07:29:26] |+/-: Change Opt. |[18;1H| |F1: General Help |[19;1H| [1;30;47mAccess Level[0;34;47m [1;30;47mAdministrator[0;34;47m |F2: Previous Values |[20;1H| |F3: Optimized Defaults |[21;1H| |F4: Save & Exit |[22;1H| |ESC: Exit |[23;1H\----------------------------------------------------+-------------------------/[24;1H[0;37;44m Version 2.14.1219. Copyright (C) 2011 American Megatrends, Inc. [9;1H[0;34;47m[9;1H| [9;23H [1;37;44m/- Load Previous Values \[10;1H[10;28H| |[0;30;40m [11;1H[0;34;47m[11;1H| [1;37;44m[11;28H| Load Previous Values? |[0;30;40m [12;1H[0;34;47m[12;1H| [1;37;44m[12;28H| |[0;30;40m [13;1H[1;37;44m[13;28H|-----------------------|[0;30;40m [14;1H[0;34;47m[14;1H| [14;19H [1;37;44m| [1;37;40mYes[1;37;44m No |[0;30;40m [15;1H[1;37;44m[15;28H\-----------------------/[0;30;40m [16;1H[16;30H C#串口 SerialPort 编码串口 SerialPort编码
因为想到需要自己控制要发送的数据,所以用SerialPort类写自己的接收发送程序:
东西其实很简单,最主要是接收部分,也就是扔个控件进去,网上抄了一段接收数据的代码而已。
但是接收回来的数据跟Putty和Minicom接收的很不一样,最主要是出现不明代码,如下:1.有人会说出现乱码可能是波特率设置不对,可这应该不算乱码,只是不知道什么编码,而且在Putty和Minicom上都正常,我在想不知道是不是这些串口软件进行过处理。
2.这个问题看似是发送端和接收端编码不一致。但是我用SerialPort类接收端的机器是纯英文的系统,发送下面这段代码发送端也是纯英文的,下面那段代码也只是进入了BIOS(可以看到很多BIOS设置相关的词语),应该跟系统语言没有什么关系吧。
3.我在考虑这些编码有没有什么特别的意思,我可不可以一个一个地把它还原回来呢?望编写过串口通信的高人指点一下,十分感激![2J[1;1H[25;78H98[1;1H[25;78H99[1;1H[25;78H99[1;1H[25;78H99[1;1H[25;78H9D[1;1H[25;78H9C[1;1H[25;78HB4[1;1H[25;78HB4[1;1H[25;78HB4[1;1H[25;78HB4[1;1H[25;78HB4[1;1H[25;78H99[1;1H[25;78HA0[1;1H[25;78HA2[1;1H[25;78HB2[1;1H[0m[1m?[2J[1;1H B2[1;1H[0;37;40m[2J[1;1H[1;1HVersion 2.14.1219. Copyright (C) 2011 American Megatrends, Inc. [2;1HBIOS Date: 12/27/2012 17:04:02 Ver: 3250E011 [3;1H[3;1HPress <DEL> or <F2> to enter setup. [4;1H[4;1HEntering Setup... [25;78HA9[5;1H[2J[1;37;40m[2J[1;37;44m[2J[25;78HAB[1;1H[1;1H[1;1H Aptio Setup Utility - Copyright (C) 2011 American Megatrends, Inc. [2;1H[0;37;44m [0;34;47m Main [0;37;44m Advanced Chipset Boot Security Save & Exit Server Mgmt [3;1H[0;34;47m/----------------------------------------------------+-------------------------\[4;1H| [0;30;47mBIOS Information [0;34;47m |Choose the system |[5;1H| [1;30;47mBIOS Vendor[0;34;47m [1;30;47mAmerican Megatrends[0;34;47m |default language |[6;1H| [1;30;47mCore Version[0;34;47m [1;30;47m4.6.5.3[0;34;47m | |[7;1H| [1;30;47mCompliancy[0;34;47m [1;30;47mUEFI 2.1; PI 1.2[0;34;47m | |[8;1H| [1;30;47mProject Version[0;34;47m [1;30;47m3250E011 x64[0;34;47m | |[9;1H| [1;30;47mBuild Date and Time[0;34;47m [1;30;47m12/27/2012 17:04:02[0;34;47m | |[10;1H| | |[11;1H| [0;30;47mMemory Information [0;34;47m | |[12;1H| [1;30;47mTotal Memory[0;34;47m [1;30;47m2048 MB (DDR3 1333)[0;34;47m | |[13;1H| |-------------------------|[14;1H| [1;37;47mSystem Language[0;34;47m [1;37;47m[English][0;34;47m |><: Select Screen |[15;1H| |^v: Select Item |[16;1H| System Date [Wed 06/26/2013] |Enter: Select |[17;1H| System Time [07:29:26] |+/-: Change Opt. |[18;1H| |F1: General Help |[19;1H| [1;30;47mAccess Level[0;34;47m [1;30;47mAdministrator[0;34;47m |F2: Previous Values |[20;1H| |F3: Optimized Defaults |[21;1H| |F4: Save & Exit |[22;1H| |ESC: Exit |[23;1H\----------------------------------------------------+-------------------------/[24;1H[0;37;44m Version 2.14.1219. Copyright (C) 2011 American Megatrends, Inc. [9;1H[0;34;47m[9;1H| [9;23H [1;37;44m/- Load Previous Values \[10;1H[10;28H| |[0;30;40m [11;1H[0;34;47m[11;1H| [1;37;44m[11;28H| Load Previous Values? |[0;30;40m [12;1H[0;34;47m[12;1H| [1;37;44m[12;28H| |[0;30;40m [13;1H[1;37;44m[13;28H|-----------------------|[0;30;40m [14;1H[0;34;47m[14;1H| [14;19H [1;37;44m| [1;37;40mYes[1;37;44m No |[0;30;40m [15;1H[1;37;44m[15;28H\-----------------------/[0;30;40m [16;1H[16;30H C#串口 SerialPort 编码串口 SerialPort编码
串口通讯跟操作系统BIos应该没有太大关系吧。
你那一堆是从哪来的?串口发送的数据还是接受数据?
我这边有调试串口工具,需要的可以找我,你首先要检查通讯幼儿米有问题。
我估计这些代码是像Linux那样设置背景和字体颜色的,不过不知道哪里能查阅到这些资料。
求大神帮忙:http://bbs.csdn.net/topics/390501016
这个是根据分号把他变成字节流吧。
谢谢你的思路,可是带了中括号,查不出这些编码的含义……
中括号也是由16进制变成了字符串的结果,
[2J[1 =这个数据变成 0x1b 0x5b 0x32 ox4a 0x1b ox5b 0x31 七个字节,上面的有两个字节是非打印字符。
那你要看他这上面是什么协议了。就是把上面那一串变成byte[] 发送到那端口就是了
谢谢你的思路,可是带了中括号,查不出这些编码的含义……
中括号也是由16进制变成了字符串的结果,
[2J[1 =这个数据变成 0x1b 0x5b 0x32 ox4a 0x1b ox5b 0x31 七个字节,上面的有两个字节是非打印字符。
那你要看他这上面是什么协议了。就是把上面那一串变成byte[] 发送到那端口就是了别见笑,其实我不是很明白5个字符和7个字节的对应关系,怎么5个变成7个了,莫非是有两个是非打印字符的关系?没道理啊,没打印出来的你怎么知道呢?,,,,还好,这个我找找资料恶补一下吧。
但是,如果能打印的字符都打印出来了,那么[2J[1这种字符对于我来说就毫无意义了,我怎么才能知道那些字符有意义,哪些字符没意义呢?Putty为什么能分析得那么清楚,它跟我接收到的数据应该是一样的吧?还有,你能列举一个你知道的协议给我么?有点罗嗦,不好意思~
谢谢你的思路,可是带了中括号,查不出这些编码的含义……
中括号也是由16进制变成了字符串的结果,
[2J[1 =这个数据变成 0x1b 0x5b 0x32 ox4a 0x1b ox5b 0x31 七个字节,上面的有两个字节是非打印字符。
那你要看他这上面是什么协议了。就是把上面那一串变成byte[] 发送到那端口就是了别见笑,其实我不是很明白5个字符和7个字节的对应关系,怎么5个变成7个了,莫非是有两个是非打印字符的关系?没道理啊,没打印出来的你怎么知道呢?,,,,还好,这个我找找资料恶补一下吧。
但是,如果能打印的字符都打印出来了,那么[2J[1这种字符对于我来说就毫无意义了,我怎么才能知道那些字符有意义,哪些字符没意义呢?Putty为什么能分析得那么清楚,它跟我接收到的数据应该是一样的吧?还有,你能列举一个你知道的协议给我么?有点罗嗦,不好意思~因为你贴的那段代码是有些字节是非打印字符,所以看不到,你要放到VS里去看就知了对于意义,你要看他有没有提供通信协议,要没有神人也无法知道是怎么一回事。