一個最最基礎的 串口通訊 程序!!!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();
- }
- }
- }