注意:由于char类型的取值范围为-128-+127,所以在接收十六进制发送的数据时为防止溢出,接收数据类型最好定义为unsigned char,其取值范围为0-255。
在计算机中,数据是以二进制的形式存储的,例如十进制 1(10进制)在计算机中用 0000 0001(2进制)来表示。我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照二进制的方式一位一位的发送出去。
例如我们要发送一串数据“A852010100000000A91A”,以字符串和十六进制两种方式发送:
(1)字符串发送
串口以字符串发送数据,首先将字符串转化为二进制,格式如下:
0100 0001 0011 1000 0011 0101 0011 0010 0011 0000 00110001 0011 0000 0011 0001
A(0x41) 8 5 2 0 1 0 1
0011 0000 0011 0000 0011 0000 0011 0000 0100 0001 0011 1001 0011 0001 0100 0001
0 0 0 0 A 9 1 A
然后按照8位(串口设置数据位为8位)形式将数据发送出去。
串口接收的数据格式如下:
编号 |
数据内容 |
编号 |
数据内容 |
0 |
A |
8 |
0 |
1 |
8 |
9 |
0 |
2 |
5 |
10 |
0 |
3 |
2 |
11 |
0 |
4 |
0 |
12 |
A |
5 |
1 |
13 |
9 |
6 |
0 |
14 |
1 |
7 |
1 |
15 |
A |
(2)十六进制发送数据
串口以十六进制发送数据,首先将数据转化为:
1010 1000 0110 0010 0000 0001 0000 0001 0000 0000 0000 0000 1010 1001 0001 1010
0XA8 0X52 0X01 0X01 0X00 0X00 0XA9 0X1A
然后按照8位(串口设置数据位为8位)形式将数据发送出去。
串口接收的数据格式如下:
编号 |
数据内容 |
编号 |
数据内容 |
0 |
A8 |
4 |
00 |
1 |
52 |
5 |
00 |
2 |
01 |
6 |
A9 |
3 |
01 |
7 |
1A |
(3)数据转换
任何数据在计算机内部都是以二进制保存的,所以进制与数据的存储无关,只与输入输出有关。所以,对于进制转换,我们只关心字符串中的结果。
比如我想发送一个十六进制的字符数组,但是char 型和int 型的数据不必要转为0X类型,char型数据类型可同时存储字符或十进制数值,所以可统一用char[]存储,
然后即可发送。
点击(此处)折叠或打开
- /* UTC time */
- //不必要将int型变量转为整型十六进制表示,可直接与0xff求与,只关心结果,转换过程在计算机内部处理
- time_t tm;
- unsigned char buffer[10];
- tm = time(NULL);
- printf("%d:%x\n",(int)tm,(unsigned int)tm);
- buffer[0] = ( tm & 0xFF );
- buffer[1] = ( tm & 0xFF00 ) >> 8;
- buffer[2] = ( tm & 0xFF0000 ) >> 16;
- buffer[3] = ( tm & 0xFF000000 ) >> 24;
点击(此处)折叠或打开
- //虽然buf定义了几个十六进制元素,但填充后面的元素并不需要转换为十六进制来表示,直接赋值即可
- unsigned char buf[20] = {0xAB,0x3C,0x02};
- char *str = "asd2bc";
- buf[3] = str[0]; // a
- buf[4] = str[1]; // s
- buf[5] = str[2]; // d
- buf[6] = str[3]; // 2
- buf[7] = str[4]; // b
- buf[8] = str[5]; // c
- send(fd,buf,ntypes); //TCP发送数据
相关推荐
tcp/udp客户端,服务端测试工具。可以收发字符串和十六进制数据。
sokit 是一款开源免费的 TCP / UDP 测试(调试)工具, 可以用来接收,发送或转发TCP/UDP数据包。 本程序可以工作在三种模式: 服务器模式,用来监听本地端口,接收外部数据包,并且可以回复自定义数据; 客户端...
用qt实现的界面程序,实现串口和UDP的字符串和16进制的收发以及qt界面美化的方法。 更详细的介绍及界面展示,请参考笔者博客,在CSDN上搜索“QT学习过程及简单串口和UDP通信demo开发过程及代码分享”。
sokit 是一款开源免费的 TCP / UDP 测试(调试)工具, 可以用来接收,发送或转发TCP/UDP数据包。 本程序可以工作在三种模式: 服务器模式,用来监听本地端口,接收外部数据包,并且可以回复自定义数据; 客户端模式,...
1、可以将非显示的字符串(如回车、换行等)转化为十六进制字符串输入进行测试。 string strCmd = "GETTVLIST \n\rL12"; Console.Write(BitConverter.ToString(ASCIIEncoding.Default.GetBytes(strCmd)).Replace("-...
支持发送ascii字符串数据,以及十六进制表示的原始字节,单次发送的字符数目没有限制;收到的数据会同时以这两种形式显示。 sokit TCP/UDP 数据包收发测试(调试)工具(Win32)是一款IP工具客户端应用,用户评价还是...
支持发送ascii字符串数据,以及十六进制表示的原始字节,单次发送的字符数目没有限制;收到的数据会同时以这两种形式显示。 sokit TCP/UDP 数据包收发测试(调试)工具(Win32)是一款IP工具客户端应用,用户评价还是...
sokit 是一款开源免费的 TCP / UDP 测试(调试)工具, 可以用来接收,发送或转发TCP/UDP数据包。 本程序可以工作在三种模式: 服务器模式,用来监听本地端口,接收外部数据包,并且可以回复自定义数据; 客户端...
sokit TCP/UDP 数据包收发测试(调试)工具(Win32)是一款IP工具客户端应用 ...4、支持发送ascii字符串数据,以及十六进制表示的原始字节,单次发送的字符数目没有限制 5、收到的数据会同时以这两种形式显示
工具支持:串口通讯、串口代理、TCP、UDP、Telnet、Ping、TFtp等通讯测试 1、本工具支持固定预定义命令,命令可以进行分组,由树形控件管理。点击“命令编辑”即可编辑预定义命令, 编辑保存后点击“命令更新”...
netty服务器解析16进制数据
智联物联串口网络数据调试助手V1.5是一款非常好用的调试工具,串口网络数据调试助手V1.5显示流畅,不容易丢数据,支持字符串和十六进制方式显示,和加时间戳分数据包显示。 串口网络数据调试助手V1.5特点 1、显示...
sokit是一款好用的tcp、udp调试工具,主要适用于专业的网络管理使用,它可以轻松查看网内的数据情况,能够有效地接收、发送、转发TCP或UDP数据包,兼容Windows XP/2000/2003/2008/Vista/7以及Linux等操作系统,有...
本资源是我在一个串口转网口的项目中总结的,很有参考价值,socket入门的话最好的,既有tcp通信源码又有udp传输代码,并且有字符串与十六进制的选择,让新手不再迷茫。
6.SSCOM免费版支持字符串和十六进制方式显示,和加时间戳分数据包显示,支持数据波形(示波器)显示. 7.支持字符串和十进制方式发送,支持预定义99组数据串发送.支持发送数据包加校验.支持转义符号输入. 8.支持...
6、支持字符串和十六进制方式显示,和加时间戳分数据包显示,支持数据波形(示波器)显示. 7、支持字符串和十进制方式发送,支持预定义99组数据串发送.支持发送数据包加校验.支持转义符号输入. 8、支持接收数据直接...
支持定时器功能,设定时间,执行命令发送,可发送udp,tcp给目标地址,命令格式支持字符串和十六进制。 支持发送虚拟键盘消息,发送命令执行虚拟按键。 支持打开指定程序和关闭指定程序。 支持多窗口模式,可同时播放...
主要适用于专业的网络管理使用,它可以轻松查看网内的数据情况,能够有效地接收、发送、转发TCP或UDP数据包,兼容Windows XP/2000/2003/2008/Vista/7以及Linux等操作系统,需要此款工具的伙伴们欢迎前来下载使用。...
3. 能以ASCII码或十六进制接收或发送任何数据或字符(包括中文) 4. 可以任意设定自动发送周期循环发送 5. 支持追加校验功能,和校验,累加和取反校验,固定值。 6. 可以将接收到的数据存入文件,可以通过文件输入...
一款用户接收串口或网口(TCP/UDP)数据的转发服务类工具: 第一种接收数据类型:数据格式为“$TMRI+内容+X”; 第二种接收数据类型:选中“退出”按钮右上方的白色小复选框,可以显现“十六进制”复选功能,接收字符...