|
主源碼:
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 1; i < 20; i++)
{
comboBox1.Items.Add("COM" + i.ToString());
}
comboBox1.Text = "COM4"; //串口號默認(rèn)值
comboBox2.Text = "9600"; //波特率默認(rèn)值
/************非常重要***************/
serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived); //必須手動添加事件
}
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) //串口數(shù)據(jù)接收事件
{
if (!radioButton3.Checked) //如果接收模式為字符模式
{
string str = serialPort1.ReadExisting(); //字符串方式讀
textBox1.AppendText(str); //添加內(nèi)容
}
/*
else //如果接收模式為數(shù)值接收
{
//易出現(xiàn)異常:由于線程退出或應(yīng)用程序請求,已中止 I/O 操作
//加入異常處理
try
{
int data;
data = serialPort1.ReadByte();
string str = Convert.ToString(data, 16).ToUpper();//轉(zhuǎn)換為大寫十六進(jìn)制字符串
textBox1.AppendText("0x" + (str.Length == 1 ? "0" + str : str) + " "); //空位補(bǔ)“0”
}
catch
{
this.Close();//關(guān)閉當(dāng)前窗體
}
}
*/
else
{ //如果接收模式為數(shù)值接收
byte data;
data = (byte)serialPort1.ReadByte(); //此處需要強(qiáng)制類型轉(zhuǎn)換,將(int)類型轉(zhuǎn)換為(byte類型數(shù)據(jù),不
string str = Convert.ToString(data, 16).ToUpper(); //轉(zhuǎn)換為大寫十六進(jìn)制字符串
textBox1.AppendText("0x" + (str.Length == 1 ? "0" + str : str) + " "); //空位補(bǔ)“0”
//上一句等同於:
// if (str.Length == 1)
// {
// str = "0" + str;
// }
// else
// {
// str = str;
// textBox1.AppendText("0x" + str);
//}
}
}
private void button1_Click(object sender, EventArgs e)
{
try
{
serialPort1.PortName = comboBox1.Text; //設(shè)置串口號
serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text, 10); //十進(jìn)制數(shù)據(jù)轉(zhuǎn)換,設(shè)置波特率
serialPort1.Open(); //打卡串口
button1.Enabled = false; //打卡串口不可用
button2.Enabled = true; //關(guān)閉串口
}
catch
{
MessageBox.Show("端口錯(cuò)誤,請檢查串口", "錯(cuò)誤");
}
}
private void button2_Click(object sender, EventArgs e)
{
try
{
serialPort1.Close(); //關(guān)閉串口
button1.Enabled = true; //打卡串口按鈕可用
button2.Enabled = false; //關(guān)閉串口按鈕不可用
}
catch //一般情況下關(guān)閉串口不會出現(xiàn)錯(cuò)誤,所有不需要加處理程序
{
MessageBox.Show("串口關(guān)閉錯(cuò)誤", "錯(cuò)誤");
}
}
|
-
-
-
BBT6.zip
2020-10-16 13:49 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
60.17 KB, 下載次數(shù): 88, 下載積分: 黑幣 -5
評分
-
查看全部評分
|