C#中串列埠通訊筆記
1、設定相應的控制元件,並命名
2、開啟串列埠按鈕事件程式碼( 其中全域性變數private SerialPort ComDevice = new SerialPort();)注:SerialPort需要使用using System.IO.Ports;
private void usbOpenButton_Click(object sender, EventArgs e)
{
if (usbNumComboBox.Items.Count <= 0)
{
MessageBox.Show("沒有發現串列埠,請檢查線路!");
return;
}
if (ComDevice.IsOpen == false)
{
ComDevice.PortName = usbNumComboBox.SelectedItem.ToString();
ComDevice.BaudRate = Convert.ToInt32(baudComboBox.SelectedItem.ToString());
ComDevice.Parity = (Parity)Convert.ToInt32(jiaoYanBitComboBox.SelectedIndex.ToString());
ComDevice.DataBits = Convert.ToInt32(dataBitComboBox.SelectedItem.ToString());
ComDevice.StopBits = (StopBits)Convert.ToInt32(stopBitComboBox.SelectedItem.ToString());
try
{
ComDevice.Open();
usbOpenButton.Enabled = false;
usbCloseButton.Enabled = true;
ComDevice.DataReceived += new SerialDataReceivedEventHandler(usbDataReceived);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
}
3、usbDataReceived函式(資料接收函式)
public void usbDataReceived(object sender, SerialDataReceivedEventArgs e)
{
byte[] ReDatas = new byte[ComDevice.BytesToRead];
ComDevice.Read(ReDatas, 0, ReDatas.Length);//讀取資料
//以下為顯示資料(預設HEX)
StringBuilder sb = new StringBuilder();
string text = sb.ToString().ToUpper();
for (int i = 0; i < ReDatas.Length; i++)
{
sb.AppendFormat("{0:x2}" + " ", ReDatas[i]);
}
receviedTextBox.AppendText(sb.ToString().ToUpper());
}
4、如果報出執行緒問題
需要在load函式中加入
Control.CheckForIllegalCrossThreadCalls = false;
相關推薦
C#中串列埠通訊筆記
1、設定相應的控制元件,並命名 2、開啟串列埠按鈕事件程式碼( 其中全域性變數private SerialPort ComDevice = new SerialPort();)注:SerialPort需要使用using System.IO.Ports; private
C++實現串列埠通訊上位機軟體
串列埠使用的是RS232匯流排進行通訊,通訊方式是半雙工。有兩種方式可以實現串列埠通訊,一種是通過ActiveX控制元件這種方法程式簡單,但欠靈活。第二個是可以通過呼叫Windows的API函式,本例程通過第二種方式。 一般通過四步來完成通訊(1)開啟串列埠(2)配置串列埠(3)讀寫串列埠(4)
c#的串列埠通訊簡單例項
---本人是一名小白,最近在做學校有關通訊的專案。在寫這份程式碼之前,查看了許多參考程式碼。如果我有說的不對的地方,還請大家指出來。 工具:串列埠助手、串列埠除錯助手、編譯器(我用的vs2017)//完整程式碼和除錯助手 在文末有連結 一、效果圖 首先給大家放一張效果圖。 二、
基於C#實現串列埠通訊Demo
https://www.cnblogs.com/Zed-H/p/8651882.html 1.基本概念 2.前端winForm佈局如下(僅僅為了實現功能,佈局略醜) 3.程式碼實現如下 1 nam
windows純C++實現串列埠通訊
點h檔案 #ifndef _WZSERIALPORT_H #define _WZSERIALPORT_H #include <iostream> using namespace std; /* 作者:歐陽偉 日期:2017-12-14 類名:WZ
ros與下位機通訊常用的c++ boost串列埠通訊
(執行串之前請先安裝串列埠驅動minicom) 一.首先移植c++ boost 庫: 1. 先去 Boost官網 下載最新的Boost版本, 我下載的是boost_1_63_0版本, 解壓 tar -xvf archive_name.tar.gz. 2. 進入
Android中串列埠通訊的問題
公司的專案是要做一個應用於工廠的一個物理網系統,android方面需要應用到串列埠通訊 .通過上網查詢到Google官方api,當時為了快速,把這個demo 依賴了 在application裡面生成了getSerialPort() 函式,用來獲取到S
WinCE中串列埠通訊的除錯方法
串列埠是嵌入式系統中應用很廣的一種通訊介面。在WinCE中,通常會有一個串列埠供除錯使用,另外的串列埠可與外圍裝置連線,如GSM和GPS等模組,以獲取相應的資訊並進行處理。 在WinCE中,為了使用串列埠,必須有相應的串列埠驅動程式,一般在BSP中都有實現。串列埠驅動是典型的
Delphi中串列埠通訊的實現
目前,利用 Delphi實現串列埠通訊的常用的方法有 3種:一是利用控制元件,如 MSCOMM控制元件和 SPCOMM控制元件;二是使用 API函式;三是呼叫其他串列埠通訊程式。其中利用 API編寫串列埠通訊程式較為複雜,需要掌握大量的通訊知識。相比較而言,利用 SPCOMM控制元件則相對較簡單,並且該控制元
C#實現串列埠通訊
.NET提供了SerialPort類進行串列埠通訊。 串列埠主要有以下幾個引數: 1.串列埠名稱(PortName) 2.波特率(BaudRate) 3.資料位(DataBits) 4.奇偶效應(Parity) 5.停止位(StopBits) 使用很簡單
WinCE中串列埠通訊的除錯方法----串列埠分離軟體的使用
串列埠是嵌入式系統中應用很廣的一種通訊介面。在WinCE中,通常會有一個串列埠供除錯使用,另外的串列埠可與外圍裝置連線,如GSM和GPS等模組,以獲取相應的資訊並進行處理。 在WinCE中,為了使用串列埠,必須有相應的串列埠驅動程式,一般在BSP中都有實現
Linux下C語言串列埠通訊
最近在做一個GPS專案,第一部分是將開發板和GPS用串列埠通訊,接受GPS上傳來的資料。Linux下所有的裝置都是以檔案形式儲存的,串列埠也是。整個串列埠通訊的流程圖為:所用到的標頭檔案為:#include<stdio.h>#include<fcntl.h&
C++編寫串列埠通訊程式
宣告:本部落格的內容主要是本人學習其他串列埠通訊部落格之後的總結,主要參考的部落格地址如下: 串列埠通訊一般分為同步和非同步兩種方式,本部落格主要講述非同步通訊程式的編寫,其程式設計步驟主要分為四步驟: 一、開啟串列埠 Win32系統把檔案的概念進
C#中串列埠類serialPort的用法!
最近由於任務需要,用到了serialPort類,在此記錄重要步驟。 主要常用的屬性為: PortName //可用的COM埠號 BaudRate //波特率
C#製作串列埠通訊助手
介面:程式碼:using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.
C# winform 串列埠通訊時檢測電腦可用串列埠並顯示
單擊同一個按鈕實現顯示“全部串列埠”和“可用串列埠”想切換 #region 全部串列埠和可用串列埠切換 private void button1_Click(object sende
在C#中使用SerialPort類實現串列埠通訊
表1 SerialPort類的常用屬性 名 稱 說 明 BaseStream 獲取 SerialPort 物件的基礎 Stream 物件 Ba
【C# 4】文字轉換。串列埠通訊中字串string和位元組陣列byte[]、ASCII的轉換
string轉byte[]:byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );byte[]轉string:string str = System.Text.Encoding.Default.GetString ( byteArra
C語言RL78 serial bootloader和C#語言bootloader PC端串列埠通訊程式
瞭解更多關於bootloader 的C語言實現,請加我QQ: 1273623966 (驗證資訊請填 bootloader),歡迎諮詢或定製bootloader(線上升級程式)。 前段時間完成的hyperboot_rl78, 是專門為Renesas 16-bit微控制器RL78 通
【C語言實現串列埠通訊知識點整理(四)】關於執行緒和程序
轉載:https://www.cnblogs.com/fuchongjundream/p/3829508.html 因為在外部檔案中呼叫結構體沒有用extern修飾,導致獲取不到正確的值,一直糾結線上程上。現在大概總結執行緒和程序的特點: 概念 1、程序(process) 狹義定義: