C#_串口通信_SerialPort_一个最基础的串口程序
一个最最基础的 串口通信 程序!!!
最近正在学c#_还不是很熟悉_只是有点java的基础
SerialPort类 的介绍
http://msdn.microsoft.com/zh-cn/library/system.io.ports.serialport(v=vs.80).aspx
这个例子网上有,哎....我一直以为 serailport 不是一个控件呢!
我现在疑问?_难道 所有的再c#可以引用的类,都对应一个控件吗?
还有c#的添加监听器的方法,该如何添加呢?
如果是控件的话,直接双击控件就可以添加上监听器,但是对于一般的对象的话就得
用+=这个方法添加....还没怎么看c#,慢慢来
关于这个程序是有bug的,而且我也没有修正,因为串口对象的 readline是个阻塞方法,所以当你运行到这个语句的时候,如果读不到数据的话就会导致整个程序假死,只能强制终止 这个程序了
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.IO.Ports;//新调用的类所在的命名空间
- namespace 串口控制
- {
- public partial class Form1 : Form
- {
- //我用了控件,所以不用初始化对象了!!
- //SerialPort sPort;//声明一个串口类对象,该对象的初始化我放到了
- public Form1()
- {
- InitializeComponent();
- }
- //发送按钮的响应时间
- private void button1_Click(object sender, EventArgs e)
- {
- //对于中文的话,要先对其进行编码,将其转换成 _Base64String ,否则你得不到中文字符串的
- byte[] data = Encoding.Unicode.GetBytes(textBox1.Text);
- string str = Convert.ToBase64String(data);
- sPort.WriteLine(str);
- MessageBox.Show("数据发送成功","系统提示");
- }
- private void button2_Click(object sender, EventArgs e)
- {
- //解码然后将字符串赋值给 文本框的 文本区
- byte[] data = Convert.FromBase64String(sPort.ReadLine());
- textBox2.Text = Encoding.Unicode.GetString(data);
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- sPort.PortName = "com3";//串口的portname
- sPort.BaudRate = 9600;//串口的波特率
- sPort.Open();
- }
- private void Form1_FormClosing(object sender, FormClosingEventArgs e)
- {
- //关闭串口
- sPort.Close();
- }
- }
- }