版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第C#基于SerialPort類實現(xiàn)串口通訊詳解本文實例為大家分享了C#基于SerialPort類實現(xiàn)串口通訊的具體代碼,供大家參考,具體內(nèi)容如下
最終效果
窗體設(shè)置:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.IO.Ports;
usingSystem.Threading;
usingSystem.Windows.Forms;
namespaceSerialCommunication
publicpartialclassForm1:Form
{
System.Threading.SynchronizationContextm_SyncContext=null;
SerialPortserialPort=null;
ToHexadecimalStringtoHexadecimalString=newToHexadecimalString();
publicForm1()
{
m_SyncContext=SynchronizationContext.Current;
InitializeComponent();
}
//Datainitialization
privatevoidForm1_Load(objectsender,EventArgse)
{
string[]ports=SerialPort.GetPortNames();
SerialPortNumber.Items.AddRange(ports);
SerialPortNumber.SelectedIndex=SerialPortNumber.Items.Count00:-1;
BaudRateCom.Text="9600";
//Setparameters
CheckBitCom.Text="None";
DataBitCom.Text="8";
StopBitCom.Text="One";
}
//Senddata
privatevoidSend_Click(objectsender,EventArgse)
{
try
{
//Senddataandhandleexceptions
byte[]bytes=newbyte[SendMessage.Text.Length];
bytes=Encoding.Default.GetBytes(SendMessage.Text);
serialPort.Write(bytes,0,bytes.Length);
}
catch(Exceptionerror)
{
MessageBox.Show(error.Message);
}
}
//Bytetohexadecimalstring
//Cleardata
privatevoidClear_Click(objectsender,EventArgse)
{
ReceiveMessage.Text="";
}
privatevoidOpen_Click(objectsender,EventArgse)
{
stringportName=SerialPortNumber.Text;
intbuadRate=int.Parse(BaudRateCom.Text);
Parityparity=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;
}
intdataBit=int.Parse(DataBitCom.Text);
StopBitsstopBits=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=newSerialPort(portName,buadRate,parity,dataBit,stopBits);
serialPort.Open();
Open.Text="Close";
}
elseif(Open.Text=="Close")
{
serialPort.Close();
Open.Text="Open";
}
}
catch(Exceptionerrror)
{
MessageBox.Show(errror.Message);
}
serialPort.DataReceived+=onDataReceived;
}
privatevoidonDataReceived(objectsender,SerialDataReceivedEventArgse)
{
try
{
Byte[]bytes=newbyte[serialPort.BytesToRead];
serialPort.Read(bytes,0,serialPort.BytesToRead);
m_SyncContext.Post(newSendOrPostCallback((obj)=
{
ReceiveMessage.AppendText(Encoding.Default.GetString(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 黑龍江省哈爾濱市德強(qiáng)高級中學(xué)2025-2026學(xué)年高二(上)期末物理試卷(Ⅱ卷)(含答案)
- 甘肅省武威市2025-2026學(xué)年高三(上)期末物理試卷(含答案)
- 2025~2026學(xué)年山東濟(jì)南市天橋區(qū)八年級語文第一學(xué)期期末考試試題(含答案)
- 危險化學(xué)品試題及答案
- 部編人教版六年級數(shù)學(xué)上冊期末考試題含答案
- 2022~2023民政行業(yè)職業(yè)鑒定考試題庫及答案第256期
- 2023年房屋建筑學(xué)考試復(fù)習(xí)題及參考答案
- 2022~2023糧油食品檢驗人員考試題庫及答案解析第101期
- 變頻器應(yīng)用技術(shù)要點
- 三峽新能源考試題及答案
- 數(shù)字孿生方案
- 金融領(lǐng)域人工智能算法應(yīng)用倫理與安全評規(guī)范
- 2026長治日報社工作人員招聘勞務(wù)派遣人員5人備考題庫及答案1套
- 機(jī)動車駕校安全培訓(xùn)課件
- 河道清淤作業(yè)安全組織施工方案
- 2025年役前訓(xùn)練考試題庫及答案
- 2024VADOD臨床實踐指南:耳鳴的管理課件
- 2026年七臺河職業(yè)學(xué)院單招職業(yè)技能測試題庫附答案
- 2021海灣消防 GST-LD-8318 緊急啟停按鈕使用說明書
- 煙花爆竹零售經(jīng)營安全責(zé)任制度
- 2025廣東潮州府城文化旅游投資集團(tuán)有限公司下屬企業(yè)副總經(jīng)理崗位招聘1人筆試歷年備考題庫附帶答案詳解2套試卷
評論
0/150
提交評論