C#下串口编程测试
C#下串口编程测试
软件平台:C# + WINCE6.0
硬件平台:tiny6410
界面设计:
设计思路:
1.点击发送键则发送文本
2.串口接收到数据包则启动一个事件,在事件中处理数据包
注意:
1.接收事件中调用主线程的控件会导致不安全,所以用了托管的方式调用
2.直接调用了C#中的串口控件,波特率等在属性页面中设置
源代码:
[csharp]
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.IO.Ports;
- using System.Threading;
- namespace test_serialport
- {
- public partial class Form1 : Form
- {
- //接收数组
- Byte[] recv_bytes;
- public Form1()
- {
- InitializeComponent();
- //打开串口
- serialPort1.Open();
- //开启接收线程
- //Thread recv_udp = new Thread(new ThreadStart(recv_udp_func));
- //recv_udp.Start();
- //添加事件注册
- serialPort1.DataReceived += recv_udp_func;
- }
- //发送按键按下
- private void button1_Click(object sender, EventArgs e)
- {
- serialPort1.Write(textBox1.Text);
- }
- //接收事件
- void recv_udp_func(object sender, SerialDataReceivedEventArgs e)
- {
- //获取缓冲区字节数
- int n = serialPort1.BytesToRead;
- //声明一个临时数组存储当前来的串口数据
- byte[] buf = new byte[n];
- serialPort1.Read(buf, 0, n);//读取缓冲数据
- this.Invoke((EventHandler)delegate { this.textBox2.Text = Encoding.Default.GetString(buf, 0, n);});
- }
- }
- }
评论暂时关闭