如何使用c#中的serialPort控件通过串口发送16进制数???

shuguangleo 2008-06-02 09:42:09
我现在要使用serialPort控件通过串口发送16进制数0xF1,serialPort空间的serialPort.Write方法有3个重载,分别是:

SerialPort.Write (String) 将参数字符串写入输出。

SerialPort.Write (Byte[], Int32, Int32) 将指定数量的字节写入输出缓冲区中的指定偏移量处。

SerialPort.Write (Char[], Int32, Int32) 将指定数量的字符写入输出缓冲区中的指定偏移量处。

我应该使用哪一个发送?如果使用数据转换,如何转换?
请大家指点,我是新手请写详细点。谢谢。
...全文
8609 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyh666168 2012-05-30
  • 打赏
  • 举报
回复
不错,学习了,正为这个发愁呢
guanglingcekong 2012-04-26
  • 打赏
  • 举报
回复
各位大虾太牛
fafafabbb 2012-03-10
  • 打赏
  • 举报
回复
serialPort空间的serialPort.Write方法有3个重载,分别是:

SerialPort.Write (String) 将参数字符串写入输出。

SerialPort.Write (Byte[], Int32, Int32) 将指定数量的字节写入输出缓冲区中的指定偏移量处。

SerialPort.Write (Char[], Int32, Int32) 将指定数量的字符写入输出缓冲区中的指定偏移量处。
febil 2010-03-07
  • 打赏
  • 举报
回复
引用 6 楼 yilaozhuang 的回复:
定啊,c#的serialport类确实存在这个缺陷,为什么不重载能够直接写数字,如16进制的0xFF


这样做的好处是一个byte就能搞定所有要发的数据 用的时候截取就OK啦

例如:
Byte[] byte=new Byte[5];
byte[0]=0x00;
byte[1]=0xFF;
byte[2]=0xf1;
byte[3]=0xf1;
byte[4]=0xf1;
port1.Write(byte,2,3);






yilaozhuang 2010-02-04
  • 打赏
  • 举报
回复
定啊,c#的serialport类确实存在这个缺陷,为什么不重载能够直接写数字,如16进制的0xFF
skkbmpbhg 2010-01-03
  • 打赏
  • 举报
回复
这样的确是可以的,但是为什么serialport.write()的方法没有直接写数字的重载那,1一个参数的话只能是字符串,学习了!
modbus999 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shuguangleo 的回复:]
baihe_591
==============
你是说用下面这个方法咯?
SerialPort.Write (Byte[], Int32, Int32) 将指定数量的字节写入输出缓冲区中的指定偏移量处。
这个方法的后两个参数是什么意思?
如果我是连续发送3个0xf1,是不是应该这样:
Byte[] byte=new Byte[3];
byte[0]=0xf1;
byte[1]=0xf1;
byte[2]=0xf1;
port1.Write(byte,0,1);
楼两个参数0和1代表什么?
[/Quote]
应这样写:
Byte[] byte=new Byte[3];
byte[0]=0xf1;
byte[1]=0xf1;
byte[2]=0xf1;
port1.Write(byte,0,3);
0代表偏移量,亦即数组的起始地址;
3代表发送的字节数。
baihe_591 2008-06-02
  • 打赏
  • 举报
回复
不好意思是:byte[0]=0xf1;
baihe_591 2008-06-02
  • 打赏
  • 举报
回复
Byte[] byte=new Byte[1];
byte=0xf1;
port1.Write(byte,0,1);
shuguangleo 2008-06-02
  • 打赏
  • 举报
回复
baihe_591
==============
你是说用下面这个方法咯?
SerialPort.Write (Byte[], Int32, Int32) 将指定数量的字节写入输出缓冲区中的指定偏移量处。
这个方法的后两个参数是什么意思?
如果我是连续发送3个0xf1,是不是应该这样:
Byte[] byte=new Byte[3];
byte[0]=0xf1;
byte[1]=0xf1;
byte[2]=0xf1;
port1.Write(byte,0,1);
楼两个参数0和1代表什么?

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧