1. 程式人生 > >c#串列埠通訊之adc資料採集

c#串列埠通訊之adc資料採集

使用c#直接拖串列埠控制元件serialPort1 設定屬性即可。

</pre><p></p><p></p><pre name="code" class="cpp">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;
<span style="color:#ff0000;">using System.IO.Ports;</span>


namespace Adc_Display
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            serialPort1.DataReceived += new SerialDataReceivedEventHandler(PortDataReceivedEvent);                  //新增串列埠資料接受事件
            System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;                                   //
        }

        private void PortDataReceivedEvent(object sender, SerialDataReceivedEventArgs args)                         //串列埠資料接收
        {
<span style="color:#ff0000;">            byte Data = (byte)serialPort1.ReadByte();                                                               //讀串列埠接收位元組,
            progressBar1.Value = Data;                                                                              //進度條賦值,顯示進度條刻度</span>
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen)                                                                                 //判斷
            {
                groupBox2.Visible = false;                                                                          //第二個框框可見
                this.Size = new Size(620, 117);                                                                     //縮小
                serialPort1.Close();                                                                                //此處可不加try,catch
                button1.Text = "開啟串列埠";
            }
            else
            {
                try
                {
                    serialPort1.PortName = comboBox1.Text;                                                         //串列埠號
                    serialPort1.Open();                                                                            //開啟
                    groupBox2.Visible = true;                                                                      //第二個框框可見
                    this.Size = new Size(620, 172);                                                                //放大
                    button1.Text = "關閉串列埠";                                                                     //按鍵標題
                }
                catch
                {
                    MessageBox.Show("串列埠開啟錯誤", "錯誤");
                }

            }
        }
    }
}

效果如圖:



相關推薦

c#串列通訊adc資料採集

使用c#直接拖串列埠控制元件serialPort1 設定屬性即可。 </pre><p></p><p></p><pre name="code" class="cpp">using System; usin

C# 串列通訊資料丟失和同步非同步問題

串列埠通訊最痛苦的在於無法深入瞭解串列埠內部的規則,只能呼叫c#提供的SerialPort類,但是使用的時候也出現了很多問題,有的是自身的有的是由於不瞭解造成的。 首先SerialPort類提供了很多很好的方法,對於讀寫都很有幫助,但是有的讀是同步,有的是非同步,同步就是

串列通訊 CRC校驗

一、CRC16簡介       迴圈冗餘碼CRC檢驗技術廣泛應用於測控及通訊領域。CRC計算可以靠專用的硬體來實現,但是對於低成本的微控制器系統,在沒有硬體支援下實現CRC檢驗,關鍵的問題就是如何通過軟體來完成CRC計算,也就是CRC演算法的問題。下

串列通訊 QByteArray詳解

QByteArray在串列埠通訊中經常被使用,有一定必要較為全面詳細的對QByteArray進行闡述。本文通過以下幾個部分加以介紹 1 初始化 2 訪問與賦值    訪問QByteArray主要有4中方式,分別為[]、at()、data[]和constDat

C#串列通訊例項

C#串列埠通訊例項 程式介面如下圖:     引數設定介面程式碼如下: using System; using System.Collections.Generic; using System.ComponentModel; using Syste

C#串列通訊助手

  簡介:   使用C#,開發平臺VS2010,功能是串列埠通訊。功能很簡單,僅供大家學習,效果如圖: 1.使用控制元件 控制元件型別 命名 用途 說明

linux c/c++串列通訊

/*串列埠裝置無論是在工控領域,還是在嵌入式裝置領域,應用都非常廣泛。而串列埠程式設計也就顯得必不可少。 偶然的一次機會,需要使用串列埠,而且作業系統還要求是Linux,因此,趁著這次機會,綜合別人的程式碼, 進行了一次整理和封裝。具體的封裝格式為C程式碼,這樣做是為了很好的

STM32串列通訊printf重定向

在串列埠通訊中,常用的協議包括RS-232、RS-422和RS-485。 •RS-232:標準串列埠,最常用的一種序列通訊介面。有三種類型(A,B和C),它們分別採用不同的電壓來表示on和off。最被廣泛使用的是RS-232C,它將mark(on)位元的電壓定義為-3V到-12V之間,而將space(off)

C#串列通訊程式SerialPort類

上篇文章主要是關於串列埠通訊中微控制器部分的程式編寫。在實際應用中,常常還要有上位機的配合才能完成工作。寫串列埠通訊的上位機程式,常常應用的程式語言有C++,VB,C#等。VB沒有學過,C++編寫視窗應用程式接觸也不多,暑假自己看了一些C#的書,也有了一些瞭解,所以就用C#

C/C++串列通訊(2)-重疊操作

重疊操作時,操作還未完成函式就返回。 重疊I/O非常靈活,它也可以實現阻塞。有兩種方法可以等待操作完成: 一種方法是用WaitForSingleObject這樣的等待函式來等待OVERLAPPED結構的hEvent成員; 另一種方法是呼叫GetOver

一個C串列通訊程式

#include <stdio.h>#include <dos.h>#include <conio.h>#include <string.h> #define COM232  0x2f8#define COMINT  0x0b

C/C++串列通訊(1)-同步操作

轉自: 串列埠通訊方式:呼叫Windows的API函式 兩種操作方式: 1. 同步操作方式 API函式會阻塞直到操作完成以後才能返回(在多執行緒方式中,雖然不會阻塞主執行緒,但是仍然會阻塞監聽執行緒); 2. 重疊操作方式(又稱為非同

51微控制器串列通訊的幀資料接收

首先定義一個數據幀格式,Header :{ 0xAA 0x55} type:{ 0x01 | 0x02 | 0x03 } length:{  N } body :{____n個位元組的資料___ } 資料的格式就是上面的定義  Header 為幀頭 標記一個數據幀的開始,t

關於c#串列通訊

/// <summary> /// 獲取serialPort /// </summary> private SerialPort serialPort = new SerialPort();

C語言實現串列通訊知識點整理(三)】串列開啟、設定資料成功後進行資料讀寫

int OpenDev(char *Dev) { int fd = open(Dev,O_RDWR | O_NOCTTY | O_NONBLOCK); if(-1 == fd) { perror("Can't Open Serial Port"); return -1;

UART串列通訊淺談(三)--字元與資料的轉換

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/solar_Lan/article/details/78093692 學串列埠通訊的應用主要是實現微控制器和電腦之間的資訊互發,可以用電腦控制微控制器的一些資訊,可以把微控制器的一些資訊狀況發給電腦

C#winform實現串列通訊讀取電子天平資料

1. 本文中所試用的是針對賽多利斯電子天平的稱重資料讀取,可試用賽多利斯電子天平的型別為SQP系列和BSA系列,兩種型別的區別在波特率等的設定不同,其他相同。 點選開始實驗,開啟串列埠,準備讀取資料,讀取到的資料自動顯示在改稱重結果上; 具體實現程式碼:  Seria

C#串列接收資料-根據特定通訊協議解析

 string strs3 = null;         //接收資料並顯示函式:可用:測試的接收資料為:0x01 0x02(鎮頭) 0x02(長度)  0x03(幀尾、即校驗位) 0x34 0x05(資料):這是硬體傳送過來的測試資料         private

Linux C開發用modbus實現串列通訊

    想要讀取串列埠資料,modbus是一個很好用的第三方庫。該庫適用於windows和Linux,支援RTP、RTU等協議,基於Linux的開發較難一些,是我前段時間主要的研究方向。http://www.modbus.org/是modbus的主頁,有興趣的朋友可以檢視一

微控制器C語言串列通訊協議

現實生活中, 我們總是要與人打交道,互通有無。微控制器也一樣,需要跟各種裝置互動。例如汽車的顯示儀表需要知道汽車的轉速及電動機的執行引數,那麼顯示儀表就需要從汽車的底層控制器取得資料。而這個資料的獲得過程就是一個通訊過程。類似的例子還有控制器通常是微控制器或者PLC與變頻器