一个最最基础的 串口通讯 程序!!!java
最近正在学c#_还不是很熟悉_只是有点java的基础c#
SerialPort类 的介绍 ide
http://msdn.microsoft.com/zh-cn/library/system.io.ports.serialport(v=vs.80).aspxthis
这个例子网上有,哎....我一直觉得 serailport 不是一个控件呢!编码
我如今疑问?_难道 全部的再c#能够引用的类,都对应一个控件吗?spa
还有c#的添加监听器的方法,该如何添加呢?code
若是是控件的话,直接双击控件就能够添加上监听器,可是对于通常的对象的话就得orm
用+=这个方法添加....还没怎么看c#,慢慢来对象
关于这个程序是有bug的,并且我也没有修正,由于串口对象的 readline是个阻塞方法,因此当你运行到这个语句的时候,若是读不到数据的话就会致使整个程序假死,只能强制终止 这个程序了blog
- 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();
- }
- }
- }