串口调试助手源代码Word下载.docx

上传人:b****5 文档编号:18144198 上传时间:2022-12-13 格式:DOCX 页数:15 大小:155.32KB
下载 相关 举报
串口调试助手源代码Word下载.docx_第1页
第1页 / 共15页
串口调试助手源代码Word下载.docx_第2页
第2页 / 共15页
串口调试助手源代码Word下载.docx_第3页
第3页 / 共15页
串口调试助手源代码Word下载.docx_第4页
第4页 / 共15页
串口调试助手源代码Word下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

串口调试助手源代码Word下载.docx

《串口调试助手源代码Word下载.docx》由会员分享,可在线阅读,更多相关《串口调试助手源代码Word下载.docx(15页珍藏版)》请在冰豆网上搜索。

串口调试助手源代码Word下载.docx

}

privatevoidForm1_Load(objectsender,EventArgse){-

this.MaximizeBox=false;

//检查是否有串口

string[]str=SerialPort.GetPortNames();

if(str==null)|

MessageBox.Show(”本机没有串口!

"

"

error"

);

return;

//添加串口项目

foreach(stringportinSystem.IO.Ports.SerialPort.GetPortNames()){

cbSerial.Properties.Items.Add(port);

//串口设置默认选择项

cbSerial.Selectedlndex=0;

订阅委托

Control.CheckForlllegalCrossThreadCalls=false;

spl.DataReceived+=new

SerialDataReceivedEventHandler(sp1_DataReceived);

//

privatevoidcomboBoxEdit1_SelectedlndexChanged(objectsender,EventArgs

e)

//SerialPortsp1=newSerialPort();

if(!

sp1.lsOpen)〃串口是关闭的,设置参数,打开串口

try

//获取串口号

stringserialName=cbSerial.Selectedltem.ToString();

sp1.PortName=serialName;

//设置各参数

stringstrBaudRate=cbBaudRate.Text;

stringstrDateBits=cbDataBits.Text;

stringstrStopBits=cbStop.Text;

sp1.BaudRate=Convert.ToInt32(strBaudRate);

〃波特率

sp1.DataBits=Convert.ToInt32(strDateBits);

//数据位

switch(cbStop.Text)//停止位

case"

1"

:

sp1.StopBits=StopBits.One;

break;

1.5"

2"

sp1.StopBits=StopBits.Two;

default:

MessageBox.Show("

Error:

参数不正确!

Error"

switch(cbParity.Text)

//

校验位

无"

sp1.Parity=Parity.None;

break;

奇校验"

sp1.Parity=Parity.Odd;

偶校验"

spl.Parity=Parity.Even;

default:

参数不正确!

〃btnOpen.Enabled=false;

 

labSerial.Text="

串口号:

”+sp1.PortName;

labState.Text="

状态:

打开"

;

catch(System.Exceptionex)

"

+ex.Message,"

return;

//privatevoidCloseSerial_Click(objectsender,EventArgse)

〃{

//if(sp1.lsOpen)

//{

//sp1.Close();

//labSerial.Text="

”+sp1.PortName;

//labState.Text="

关闭"

//}

〃}

privatevoidSend_Click(objectsender,EventArgse){-

stringStrSend=memoSend.Text;

sp1.lsOpen)

MessageBox.Show(”请先打开串口!

else

字符串发送

if(rbtnSendStr.Checked)//

if(ckTimeSend.Checked

&

!

(string.lsNullOrEmpty(textTime.Text)))//判断是否定时发送数据

stringTime=textTime.Text;

tmSend.lnterval=int.Parse(Time)*1000;

//时间单位是秒,

化成毫秒单位

后的空格

//stringStrSend_2=StrSend_1.Replace(”"

//stringStrSend_3=string.Join(”"

Regex.Matches(StrSend_2,@"

..|."

).Cast<

Match>

().ToList());

string[]StrArray=StrSend_1.Split('

'

//用

空格符隔开字符串数组

varStr_Send=newList<

string>

();

//intbyteBufferLength=StrArray.Length;

数组StrArray的长度

for(inti=0;

i<

StrArray.Length;

i++)

if(StrArray[i].Trim()=="

){

//byteBufferLength--;

continue;

if(StrArray[i].Length<

3)

Str_Send.Add(StrArray[i]);

Str_Send.AddRange(Devide(StrArray[i]));

intbyteBufferLength=Str_Send.Count;

byte[]byteBuffer=newbyte[byteBufferLength];

intii=0;

//decNum=Convert.ToInt32(Str_Send[i],16);

//把字

符串转成16进制数

〃byteBuffer[ii]=Convert.ToByte(decNum);

decNum=Convert.ToInt32(Str_Send[i],16);

//把

字符串转成16进制数

byteBuffer[ii]=Convert.ToByte(decNum);

catch(System.Exceptionex)

MessageBox.Show(”输入错误!

"

提示"

ii++;

sp1.Write(byteBuffer,0,byteBuffer.Length);

//从第0个开始

写入byteBuffer,长度bytebuffer的长度。

|

@"

().ToList().ConvertAII(s=>

s.Value.ToString());

returnret;

privatevoidtmSend_Tick(objectsender,EventArgse){

if(rbtnSendStr.Checked)

sp1.Write(StrSend);

去掉前后的空格

用空格符隔

stringStrSend_1=StrSend.Trim();

开字符串数组|一

i++){

}-|

}|—

byte[]byteBuffer=newbyte[byteBufferLength];

intii=0;

Str_Send.Count;

{-

intdecNum=0;

try]

decNum=Convert.Tolnt32(Str_Send[i],16);

//把字符串转

成16进制数

}|i

{|

}EZ

sp1.Write(byteBuffer,0,byteBuffer.Length);

//从第0个开始写入

byteBuffer,长度bytebuffer的长度。

voidsp1_DataReceived(objectsender,SerialDataReceivedEventArgse)

byte[]byteRead=newbyte[sp1.BytesToRead];

if(rbtnRceStr.Checked){

创建

Byte[]receivedData=newByte[sp1.BytesToRead];

接收字节数组

sp1.Read(receivedData,0,receivedData.Length);

stringstrRcv=nuII;

receivedData.Length;

strRcv+=receivedData[i].ToString("

X2"

}memoRcv.Text+=strRcv;

memoRcv.SelectionStart=memoRcv.Text.Length;

memoRcv.ScrollToCaret();

privatevoidStop_Click(objectsender,EventArgse)

//退出接收数据

privatevoidTime_Press(objectsender,KeyPressEventArgse){

Char.lsLetterOrDigit(e.KeyChar))

privatevoidTextTime_KeyPress(objectsender,KeyPressEventArgse)//限制定时发送时间只能输入数字

(Char.lsNumber(e.KeyChar))&

e.KeyChar!

=(char)8)

MessageBox.Show(”请输入数字"

提示"

e.Handled=true;

privatevoidmemoSend_KeyPress(objectsender,KeyPressEventArgse)

串口

privatevoidbtnClose_Click(objectsender,EventArgse)//关闭

if(sp1.lsOpen)

sp1.Close();

}privatevoidSend16_KeyPress(objectsender,KeyPressEventArgse){

//stringSend16=memoRcv.Text;

〃byte[]buff=newbyte[Send16.Length/2];

〃intindex=0;

//for(inti=0;

Send16.Length;

i+=2)

//buff[index]=Convert.ToByte(Send16.Substring(i,2),16);

//++index;

//}

//stringresult=Encoding.Default.GetString(buff);

////MessageBox.Show(result);

//memoRcv.Text=result;

}privatevoidSendStr_KeyPress(objectsender,KeyPressEventArgse)

{_

//stringSendStr=memoRcv.Text;

//byte[]ba=System.Text.ASCIIEncoding.Default.GetBytes(SendStr);

//StringBuildersb=newStringBuilder();

//foreach(bytebinba)

//{

//sb.Append(b.ToString("

x"

));

////MessageBox.Show(sb.ToString());

//memoRcv.Text=sb.ToString();

privatevoidrbtnSend16_CheckedChanged(objectsender,EventArgse){

StateChanged_16=1;

StateChanged_Ascii=0;

if(Temp_memoSend==StrSend.Trim()&

Flag==1)

memoSend.Text="

foreach(charSinStrSend)

memoSend.Text+=((byte)S).ToString("

privatevoidrbtnSendStr_CheckedChanged(objectsender,EventArgse){

if(StateChanged_16==1)

Flag=1;

StateChanged_16=0;

StateChanged_Ascii=1;

去掉前后的空格用空格符隔

Temp=memoSend.Text;

开字符串数组

if(StrArray.Length==0)

{break;

}else

}-

把字符

for(intj=0;

j<

Str_Send.Count;

j++)

try{

decNum=Convert.ToInt32(Str_Send[j],16);

//串转成16进制数

if(decNum>

=48&

decNum<

=57||decNum>

=65&

decNum<

=90||decNum>

=97&

=122)//除了数字和字母,其他都转成问号

byteBuffer[ii]=Convert.ToByte(63);

{I

rbtnSendStr.Checked=false;

rbtnSend16.Checked=true;

memoSend.Text=StrSend;

}ii++;

foreach(bytebinbyteBuffer)

memoSend.Text+=(char)b;

Temp_memoSend=memoSend.Text;

欢迎您的下载,

资料仅供参考!

致力为企业和个人提供合同协议,策划案计划书,学习资料等等

打造全网一站式需求

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1