C#_串口通訊_SerialPort_一個最基礎的串口程序

 

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

 

 

  
  
           
  
  
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.ComponentModel; 
  4. using System.Data; 
  5. using System.Drawing; 
  6. using System.Linq; 
  7. using System.Text; 
  8. using System.Windows.Forms; 
  9. using System.IO.Ports;//新調用的類所在的命名空間 
  10.  
  11.  
  12. namespace 串口控制 
  13.     public partial class Form1 : Form 
  14.     { 
  15.         //我用了控件,因此不用初始化對象了!! 
  16.         //SerialPort sPort;//聲明一個串口類對象,該對象的初始化我放到了 
  17.          
  18.  
  19.         public Form1() 
  20.         { 
  21.             InitializeComponent(); 
  22.  
  23.              
  24.         } 
  25.  
  26.         //發送按鈕的響應時間 
  27.         private void button1_Click(object sender, EventArgs e) 
  28.         { 
  29.  
  30.             //對於中文的話,要先對其進行編碼,將其轉換成 _Base64String ,不然你得不到中文字符串的 
  31.             byte[] data = Encoding.Unicode.GetBytes(textBox1.Text); 
  32.             string str = Convert.ToBase64String(data); 
  33.             sPort.WriteLine(str); 
  34.             MessageBox.Show("數據發送成功","系統提示"); 
  35.             
  36.         } 
  37.  
  38.         private void button2_Click(object sender, EventArgs e) 
  39.         { 
  40.  
  41.             //解碼而後將字符串賦值給 文本框的 文本區 
  42.             byte[] data = Convert.FromBase64String(sPort.ReadLine()); 
  43.             textBox2.Text = Encoding.Unicode.GetString(data); 
  44.              
  45.         } 
  46.  
  47.         private void Form1_Load(object sender, EventArgs e) 
  48.         { 
  49.              
  50.             sPort.PortName = "com3";//串口的portname 
  51.             sPort.BaudRate = 9600;//串口的波特率 
  52.             sPort.Open(); 
  53.         } 
  54.  
  55.         private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
  56.         { 
  57.            //關閉串口 
  58.             sPort.Close(); 
  59.         } 
  60.  
  61.  
  62.     } 
相關文章
相關標籤/搜索