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是個阻塞方法,所以當你運行到這個語句的時候,如果讀不到數據的話就會導致整個程序假死,只能強制終止 這個程序了

 

 

    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.     } 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM