为什么串口发送指令要按照16进制发送

我看C++串口通讯的例程,串口向外发送指令的时候都是把一串指令转换成16进制数存进数组,然后一个字节一个字节地发送,字节之间好像还要延时,这是为什么?

你要知道 电子设备之间的串口数据通信是:
单位时间内的电压高低来进行传送的(编程的时候说的是二进制) 高电平位1 低电平位0
16进制FF 最大表示255
所以换做二进制位11111111
综上所述 无论 你传送的是什么汉字也好 图片也罢 音乐也可以 归根结底 都是用电压来表示的
这里涉及的范围有点大 我也说不清楚 你去了解下串口的通信 在物理上是怎么完成的 你就能理解了追问

串口通讯我知道,高低电平嘛。我只是想说串口通讯编程里我直接收发字符串也可以,为什么要转换成16进制发送。

温馨提示:内容为网友见解,仅供参考
无其他回答

串口发送数据---字符串发送与十六进制发送的区别
这样发送和接收时,十六进制形式更便于理解和处理,因为十六进制是直接对应二进制的,无需额外转换。总结来说,字符串发送需要先将字符转换为ASCII码再发送,而十六进制发送则是直接将原始数据转化为其十六进制形式。接收时,十六进制形式的数据更容易对应解读,而字符串发送则可能需要额外的字符解析步骤。

串口RS-232发送代码问题
“商业软件”串口发送和接收数据,发送的只能是字符串型的代码,设备要收十六进制代码 答案:1、分析 发送字符串型,实际是一个一个字符发送的,设备也是一个一个十六进制代码接受的。应此,如果设备端要接收“55 01 01 02 01”这样5个字节的十六进制代码,软件端发送可以这样,例如发送字符串变量是bu...

使用串口调试助手时,选中“以16进制发送”,发送“03”,那么在不选中...
串口助手通常支持16进制、字符串、文件等格式发送。16进制即直接把数据转为字节,如03即为0x03;字符串和编码方式有关,如果只是ascii,则可以对照ascii编码表,如“03”即0x30 0x33。类似软件有格西烽火、sscom等。

如何用“C#”对串口发送16进制数?
在C#中,与串口通信主要依赖于`System.IO.Ports.SerialPort`类。当你需要向串口发送16进制数据时,实际上是在发送这些16进制数对应的字节序列。因此,首要步骤是将16进制数转换为字节。1. 16进制数转换为字节:16进制数是一种数值表示方法,它使用16个不同的符号来表示数值,包括0-9来表示值0到9,...

用isp的串口助手给单片机发程序,文本模式和HEX模式有什么区别?
你好,HEX模式是将要发送的数据按照16进制格式进行发送;而你单片机的接收是用的16进制接收的,所以你发送也得按照16进制进行!

如何用“C#”对串口发送16进制数?
接下来是准备要发送的16进制数据。在C#中,16进制数通常以字符串的形式表示,如"0xA5"或"A5"。为了通过串口发送这些数据,需要先将它们转换为字节流。这可以通过将每两个16进制字符转换为一个字节来实现。例如,字符串"A5"将被转换为字节0xA5。在转换过程中,可以使用C#的`Convert.ToByte`方法,但...

如何实现串口调试助手的“以16进制发送”的功能
串口发送的数据是8位的,最大为255,就是FF,如果要发送大于255的数,必须变成几个字节发送,例如要发送十进制2315,就要将数据拆分 data(0)=2315\/256; data(1)=2315%256; 这样就拆分开数据,再将数据发送出去。

...用串口通信助手向单片机发送数据时,不用16进制的话,发送1,勾上16...
发送的时候选择16进制发送,否则按字符发送,就是发送ASCII码,1的ASCII码是49,16进制就是31.具体百度一下ASCII

java串口通信中怎样以十六进制数发送
那么在java开发中发送数据的时候使用OutputStream,而其write()的参数是字节数组、int整形。如果使用字节数组发送的时候,通常可以直接写成out.write("1234".getBytes())。这样一来单片机读到的数据则是31 32 33 34。但是在串口发送的时候先把16进制字符串转化为byte数组在发送出来,则是发送什么读取到的...

通过单片机串口发送一串16进制码
发送16进制数和空格的要求不合理,要发16进制数就是连续的。要发空格,那是字符,即ASCII码,而一个字节的16进制数要发两个字符。以16进制发送时,空格的16进制数20H,而不是这种空的空格。

相似回答