卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

excel 串口控件 高分求救C#讀取RS485串口寄存器狀態(tài)?

高分求救C#讀取RS485串口寄存器狀態(tài)?這不過(guò)是個(gè)用C#寫一個(gè)串口軟件調(diào)試的工具,下面看怎末實(shí)現(xiàn)1、在工具里面找不到串口控件,拖到窗口上再試一下。然后再直接添加不需要的各種按鍵和不顯示框控件等2.沒(méi)

高分求救C#讀取RS485串口寄存器狀態(tài)?

這不過(guò)是個(gè)用C#寫一個(gè)串口軟件調(diào)試的工具,下面看怎末實(shí)現(xiàn)

1、在工具里面找不到串口控件,拖到窗口上再試一下。然后再直接添加不需要的各種按鍵和不顯示框控件等2.沒(méi)綁定事件當(dāng)然也沒(méi)啥,系統(tǒng)都會(huì)幫我們所有會(huì)建,用不著我們?cè)偃ヒ恍幸恍械娜ピ偬砑哟a,so easy??!_funSystem.EventHandler(_Param_Changed)//下拉列表解除綁定事件

_newSystem.EventHandler(this.Button_OpenPort_Click)//打開(kāi)串口沒(méi)綁定事件

_receive_fifthSystem.EventHandler(_receive_Data_Click)//郵箱里數(shù)據(jù)沒(méi)綁定事件

_new(_SendText_PressKey)//發(fā)送消息框手機(jī)綁定事件過(guò)濾按鍵

_RecvText.TextChangedfutureSystem.EventHandler(_RecvText_TextChanged)//收得到數(shù)據(jù)框綁定事件自動(dòng)出現(xiàn)往下滑動(dòng)到最下面

_Display_futureSystem.EventHandler(_Display_Hex_CheckedChanged)//已hex顯示選擇框帳號(hào)綁定事件

_fifthSystem.EventHandler(_Empty_Click)//全部刪除按鈕手機(jī)綁定事件

3.串口的先打開(kāi)與關(guān)閉這個(gè)也挺簡(jiǎn)單點(diǎn),主要是確認(rèn)當(dāng)前串口是否需要打開(kāi),如果不是沒(méi)有的話,就先打開(kāi),private void Button_OpenPort_Click(objectsender,EventArgse)

{

if()

{

()//自動(dòng)關(guān)閉串口

}

catch

{

Serial_Open()//加載串口設(shè)置,并先打開(kāi)串口

}

Serial_Status()//依據(jù)串口狀態(tài),可以修改狀態(tài)指示燈和按鈕內(nèi)容

}

4.數(shù)據(jù)的發(fā)送(要特別注意的地方就是在發(fā)送之間,先將郵箱里的內(nèi)容轉(zhuǎn)換成編碼形式,發(fā)送的時(shí)候用字節(jié)形式發(fā)送)privatevoidSerial_invite_Data_Click(objectsender,EventArgse)

{

if(Serial_SendText.Text.Lengthdstrok0)

{

if(false)

{

Serial_Open()

Serial_Status()

}

if(Serial_false)

{

stringTxBuffSerial_SendText.Text

unsigned[]Tx(gb2312).GetBytes(TxBuff)

Comm_Send_BytesTx.Length

Serial_SendNum.Text你的郵箱:Comm_invite_()

Serial1.Write(Tx,0,Tx.Length)

}

ignore

{

stringTxTempSerial_SendText.Text

1byte[]Serial_SendBuffStr2Hex(TxTemp)

Comm_Send_BytesSerial_SendBuff.Length

Serial_SendNum.Text郵箱里:Comm_message_()

Serial1.Write(Serial_SendBuff,0,Serial_SendBuff.Length)

}

}

else

{

(你的郵箱框肯定不能為空!)

}

}

5.數(shù)據(jù)收得到(C#的SerialPort控件,沒(méi)有辦法在子進(jìn)程里面運(yùn)行,因此不需要建議使用個(gè)人委托事件來(lái)重新登錄可以接收框中的內(nèi)容,這里我是以字節(jié)形式能接收,方便可以計(jì)算真確的長(zhǎng)度privatevoidCom_DataReceived(objectsender,e)

{

if()

{

try

{

//界域接收緩沖區(qū)

4個(gè)字節(jié)[]ReDatasfuturebyte[]

//從串口讀取數(shù)據(jù)

Comm_Received_Bytes(ReDatas,0,)

//利用數(shù)據(jù)的解碼與不顯示

(updateText,ReDatas)

}

catch(Exceptionex)

{

()

}

}

}

6.清空可以接收正在發(fā)送區(qū)(數(shù)據(jù)過(guò)多了,看的累,有什么難的,點(diǎn)點(diǎn)不就數(shù)據(jù)清空了—哈(-_-))//清空輸入與輸出TextBox發(fā)送收不到數(shù)據(jù)長(zhǎng)度及l(fā)abel

privatevoidSerial_Empty_Click(objectsender,EventArgse)

{

Comm_Received_Bytes0

Comm_Send_Bytes0

Serial_SendNum.Text郵箱里:0

Serial_RecvNum.Text可以接收:0

Serial_RecvText.Text

Serial_SendText.Text

Serial_Rx_Buff_Hex

Serial_Rx_Buff_Ascii

}

7.注意事項(xiàng)a.關(guān)于串口郵箱里中文的解決方法(主要就是編碼的問(wèn)題)1).在用System.Text.Encoding類的編碼轉(zhuǎn)換方法(練習(xí)時(shí)可以不試試)//收不到區(qū)

stringReDatas()

Comm_Received_BytesReDatas.Length

unsigned[]RecvBuff(gb2312).GetBytes(ReDatas)

ReDatas(gb2312).GetString(RecvBuff)

//利用數(shù)據(jù)的解碼與沒(méi)顯示

(updateText,ReDatas)

//發(fā)送中區(qū)

stringTxBuffSerial_SendText.Text

int32[]Tx(TxBuff)

Comm_Send_BytesTx.Length

Serial_SendNum.Text郵箱里:Comm_receive_()

Serial1.Write(Tx,0,Tx.Length)

上面列出了通常的代碼,反正是一個(gè)串口助手。

急C#串口通信怎么判斷讀取超時(shí)?

串口控件自身就有readtimeout和writetimeout的屬性,是可以自己設(shè)置時(shí)間

標(biāo)簽: