C# serialPort1发送和读取数据?

dolo1984 2008-11-11 05:46:00
我刚接触这个串口,现在有一个问题是怎么发送和处理读取的数据?好比:"02000200348>" 转换成 "02 30 32 30 30 30 32 30 30 33 34 38 03 3E"这样的形式?这一串是从“串口调试助手”上得到的
...全文
1132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dolo1984 2008-11-12
  • 打赏
  • 举报
回复
不用十六进制的是这样"02000200348>"
dolo1984 2008-11-12
  • 打赏
  • 举报
回复
串口助手收到的数据是这样的“02 30 32 30 30 30 32 30 30 33 34 38 03 3E”
我在程序里写成这样
        private void serialPort1_DataReceived_1(object sender, SerialDataReceivedEventArgs e)
{
try
{
int buffersize =4;
byte[] data = new byte[buffersize];
listBox1.Items.Add( serialPort1.Read(data,0,buffersize));


}
catch (Exception ex)

{

MessageBox.Show(ex.ToString());
}
}

收到的却是4
4
4
2
不知道是怎么处理的?
dolo1984 2008-11-11
  • 打赏
  • 举报
回复
看过,可是我公司里的发送数据是ascii码的还是16进hex的。
brallow 2008-11-11
  • 打赏
  • 举报
回复
HOHO,后面的是以空格分析的收到的字节流。
至于编码则很简单:
byte[] rawdata = new byte[50];
int k = sp.Receive(rawdata); //乱写的,假定数据接收到了
string s = Convert.ToString(rawdata); //这里得到的字节流不是以空格分割的,而是连续的如:023032303030
//自己再分割一下:
string s2 = "";
for(int i = 0;i<s.Length;i=i+2)
{
s2+=s[i]+s[i+1]+" ";
}

上面写了一个大概:)
还有其它方法也可以:)
luymiracle 2008-11-11
  • 打赏
  • 举报
回复
这是《C#编程范例宝典》上的例子,自己参考一下
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using System.Runtime.InteropServices;

namespace Ex13_01
{
public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
serialPort1.PortName = "COM1";
serialPort1.BaudRate = 9600;
serialPort1.Open();
byte[] data = Encoding.Unicode.GetBytes(textBox1.Text);
string str = Convert.ToBase64String(data);
serialPort1.WriteLine(str);
MessageBox.Show("数据发送成功!","系统提示");
}

private void button2_Click(object sender, EventArgs e)
{
byte[] data = Convert.FromBase64String(serialPort1.ReadLine());
textBox2.Text = Encoding.Unicode.GetString(data);
serialPort1.Close();
MessageBox.Show("数据接收成功!","系统提示");
}
}
}

110,525

社区成员

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

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

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