最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#基于SerialPort類實現(xiàn)串口通訊詳解

 更新時間:2022年01月31日 11:31:50   作者:迎迎一笑  
這篇文章主要為大家詳細介紹了C#基于SerialPort類實現(xiàn)串口通訊,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C#基于SerialPort類實現(xiàn)串口通訊的具體代碼,供大家參考,具體內容如下

最終效果

窗體設置:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO.Ports;
using System.Threading;
using System.Windows.Forms;

namespace SerialCommunication
{
? ? public partial class Form1 : Form
? ? {
? ? ? ? System.Threading.SynchronizationContext m_SyncContext = null;
? ? ? ? SerialPort serialPort = null;
? ? ? ? ToHexadecimalString toHexadecimalString = new ToHexadecimalString();
? ? ? ? public Form1()
? ? ? ? {
? ? ? ? ? ? m_SyncContext = SynchronizationContext.Current;
? ? ? ? ? ? InitializeComponent();
? ? ? ? }

? ? ? ? //Data initialization
? ? ? ? private void Form1_Load(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? string[] ports = SerialPort.GetPortNames();
? ? ? ? ? ? SerialPortNumber.Items.AddRange(ports);
? ? ? ? ? ? SerialPortNumber.SelectedIndex = SerialPortNumber.Items.Count > 0 ? 0 : -1;
? ? ? ? ? ? BaudRateCom.Text = "9600"; ?//Set parameters
? ? ? ? ? ? CheckBitCom.Text = "None";
? ? ? ? ? ? DataBitCom.Text = "8";
? ? ? ? ? ? StopBitCom.Text = "One";
? ? ? ? }

? ? ? ? ? ? //Send data
? ? ? ? ?private void Send_Click(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? try
? ? ? ? ? ? {
? ? ? ? ? ? ? ? //Send data and handle exceptions
? ? ? ? ? ? ? ? byte[] bytes = new byte[SendMessage.Text.Length];
? ? ? ? ? ? ? ? bytes = Encoding.Default.GetBytes(SendMessage.Text);
? ? ? ? ? ? ? ? serialPort.Write(bytes, 0, bytes.Length);
? ? ? ? ? ? }
? ? ? ? ? ? catch (Exception error)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? MessageBox.Show(error.Message);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? ? ? ? ? // Byte to hexadecimal string?

? ? ? ? //Clear data
? ? ? ? private void Clear_Click(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? ReceiveMessage.Text = "";
? ? ? ? }

? ? ? ? private void Open_Click(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? string portName = SerialPortNumber.Text;
? ? ? ? ? ? int buadRate = int.Parse(BaudRateCom.Text);
? ? ? ? ? ? Parity parity = 0;
? ? ? ? ? ? switch (CheckBitCom.Text)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? case "None":
? ? ? ? ? ? ? ? ? ? parity = Parity.None; break;
? ? ? ? ? ? ? ? case "Odd":
? ? ? ? ? ? ? ? ? ? parity = Parity.Odd; break;
? ? ? ? ? ? ? ? case "Even":
? ? ? ? ? ? ? ? ? ? parity = Parity.Even; break;
? ? ? ? ? ? ? ? case "Mark":
? ? ? ? ? ? ? ? ? ? parity = Parity.Mark; break;
? ? ? ? ? ? ? ? case "Space":
? ? ? ? ? ? ? ? ? ? parity = Parity.Space; break;
? ? ? ? ? ? }
? ? ? ? ? ? int dataBit = int.Parse(DataBitCom.Text);
? ? ? ? ? ? StopBits stopBits = 0;
? ? ? ? ? ? switch (StopBitCom.Text)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? case "None":
? ? ? ? ? ? ? ? ? ? stopBits = StopBits.None; break;
? ? ? ? ? ? ? ? case "One":
? ? ? ? ? ? ? ? ? ? stopBits = StopBits.One; break;
? ? ? ? ? ? ? ? case "Tow":
? ? ? ? ? ? ? ? ? ? stopBits = StopBits.Two; break;
? ? ? ? ? ? ? ? case "OnePointFive":
? ? ? ? ? ? ? ? ? ? stopBits = StopBits.OnePointFive; break;
? ? ? ? ? ? }
? ? ? ? ? ? try
? ? ? ? ? ? {
? ? ? ? ? ? ? ? if (Open.Text == "Open")
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? serialPort = new SerialPort(portName, buadRate, parity, dataBit, stopBits);
? ? ? ? ? ? ? ? ? ? serialPort.Open();
? ? ? ? ? ? ? ? ? ? Open.Text = "Close";
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else if (Open.Text == "Close")
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? serialPort.Close();
? ? ? ? ? ? ? ? ? ? Open.Text = "Open";
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? catch (Exception errror)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? MessageBox.Show(errror.Message);
? ? ? ? ? ? }
? ? ? ? ? ? serialPort.DataReceived += onDataReceived;

? ? ? ? }
? ? ? ? private void onDataReceived(object sender, SerialDataReceivedEventArgs e)
? ? ? ? {
? ? ? ? ? ? try
? ? ? ? ? ? {
? ? ? ? ? ? ? ? Byte[] bytes = new byte[serialPort.BytesToRead];
? ? ? ? ? ? ? ? serialPort.Read(bytes, 0, serialPort.BytesToRead);
? ? ? ? ? ? ? ? m_SyncContext.Post(new SendOrPostCallback((obj) =>
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ReceiveMessage.AppendText(Encoding.Default.GetString(bytes));
? ? ? ? ? ? ? ? }), bytes);
? ? ? ? ? ? }
? ? ? ? ? ? catch (Exception error)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? MessageBox.Show(error.Message);
? ? ? ? ? ? }
? ? ? ? }
? ? }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 基于WPF實現(xiàn)IP輸入控件

    基于WPF實現(xiàn)IP輸入控件

    這篇文章主要介紹了如何基于WPF實現(xiàn)簡單的IP輸入控件,文中的示例代碼講解詳細,對我們學習或工作有一定幫助,需要的小伙伴可以參考一下
    2023-08-08
  • c# winform窗口一直置頂顯示在桌面最上方或最底層的方法

    c# winform窗口一直置頂顯示在桌面最上方或最底層的方法

    winform窗口一直置頂顯示在桌面最上方,這樣的功能真的很實用的,很多的軟件窗口都有這樣的功能,本文也來實現(xiàn)一個,感興趣的你千萬不要錯過了,希望本文對你有所幫助
    2013-01-01
  • C#如何操作Excel數(shù)據(jù)透視表

    C#如何操作Excel數(shù)據(jù)透視表

    這篇文章主要為大家詳細介紹了C#如何操作Excel數(shù)據(jù)透視表, 創(chuàng)建透視表、設置行折疊、展開等操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • C#中的不可變數(shù)據(jù)類型介紹(不可變對象、不可變集合)

    C#中的不可變數(shù)據(jù)類型介紹(不可變對象、不可變集合)

    這篇文章主要介紹了C#中的不可變數(shù)據(jù)類型介紹(不可變對象、不可變集合),本文講解了不可變對象、自定義不可變集合、Net提供的不可變集合、不可變優(yōu)點、不可變對象缺點等內容,需要的朋友可以參考下
    2015-04-04
  • Unity ScrollView實現(xiàn)動態(tài)列表生成

    Unity ScrollView實現(xiàn)動態(tài)列表生成

    這篇文章主要為大家詳細介紹了Unity ScrollView實現(xiàn)動態(tài)列表生成,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#中圖片、二進制與字符串的相互轉換方法

    C#中圖片、二進制與字符串的相互轉換方法

    這篇文章主要介紹了C#中圖片、二進制與字符串的相互轉換方法,涉及C#針對不同數(shù)據(jù)類型的解析與轉換操作技巧,需要的朋友可以參考下
    2016-06-06
  • C#實現(xiàn)圖片縮略圖功能的示例詳解

    C#實現(xiàn)圖片縮略圖功能的示例詳解

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)圖片縮略圖的功能,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • Unity實現(xiàn)坦克模型

    Unity實現(xiàn)坦克模型

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)坦克模型,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C#讀寫Excel的流程步驟

    C#讀寫Excel的流程步驟

    這篇文章主要介紹了詳解C#讀寫Excel的流程步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或工作有一定的參考學習價值,需要的朋友們下面隨著小編來一起來學習吧
    2023-12-12
  • C# L型棋牌覆蓋實現(xiàn)代碼與效果

    C# L型棋牌覆蓋實現(xiàn)代碼與效果

    C# L型棋牌覆蓋實現(xiàn)代碼與效果,需要的朋友可以參考一下
    2013-04-04

最新評論

乐亭县| 桐城市| 金川县| 鲁甸县| 灯塔市| 江西省| 淮安市| 闵行区| 清徐县| 绿春县| 丁青县| 梁平县| 洛宁县| 吴江市| 文山县| 依兰县| 苗栗市| 孟津县| 泾源县| 宁城县| 余干县| 曲周县| 精河县| 长沙市| 茶陵县| 兰坪| 濮阳县| 大方县| 梓潼县| 册亨县| 贵南县| 咸阳市| 浙江省| 汉川市| 临邑县| 光泽县| 丰镇市| 察隅县| 郁南县| 图们市| 普定县|