欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4600|回復: 2
打印 上一主題 下一主題
收起左側

C#實現串口通訊源碼

[復制鏈接]
跳轉到指定樓層
樓主

主源碼:

  private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 1; i < 20; i++)
            {
                comboBox1.Items.Add("COM" + i.ToString());
            }
            comboBox1.Text = "COM4"; //串口號默認值
            comboBox2.Text = "9600";  //波特率默認值

            /************非常重要***************/
            serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived); //必須手動添加事件
        }

        private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)   //串口數據接收事件
        {
            if (!radioButton3.Checked) //如果接收模式為字符模式
            {
                string str = serialPort1.ReadExisting(); //字符串方式讀
                textBox1.AppendText(str);  //添加內容
            }
/*           
              else //如果接收模式為數值接收
                        {
                            //易出現異常:由于線程退出或應用程序請求,已中止 I/O 操作
                            //加入異常處理
                            try
                            {
                                int data;
                                data = serialPort1.ReadByte();
                                string str = Convert.ToString(data, 16).ToUpper();//轉換為大寫十六進制字符串
                                textBox1.AppendText("0x" + (str.Length == 1 ? "0" + str : str) + " ");  //空位補“0”               
                            }
                            catch
                            {
                                this.Close();//關閉當前窗體
                            }

                        }   
    */        

           else
            {   //如果接收模式為數值接收
                byte data;
                data = (byte)serialPort1.ReadByte();  //此處需要強制類型轉換,將(int)類型轉換為(byte類型數據,不
                string str = Convert.ToString(data, 16).ToUpper();  //轉換為大寫十六進制字符串
                textBox1.AppendText("0x" + (str.Length == 1 ? "0" + str : str) + " ");  //空位補“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;   //設置串口號
                serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text, 10); //十進制數據轉換,設置波特率
                serialPort1.Open();  //打卡串口
                button1.Enabled = false; //打卡串口不可用
                button2.Enabled = true;  //關閉串口

            }
            catch
            {
                MessageBox.Show("端口錯誤,請檢查串口", "錯誤");
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                serialPort1.Close();  //關閉串口
                button1.Enabled = true;   //打卡串口按鈕可用
                button2.Enabled = false;  //關閉串口按鈕不可用

            }
            catch   //一般情況下關閉串口不會出現錯誤,所有不需要加處理程序
            {
                MessageBox.Show("串口關閉錯誤", "錯誤");
            }
        }

51hei.png (4.55 KB, 下載次數: 109)

51hei.png

BBT6.zip

60.17 KB, 下載次數: 88, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

無效樓層,該帖已經被刪除
板凳
ID:635564 發表于 2020-10-25 13:39 | 只看該作者
程序運行正常,剛好用到串口學習一下,非常感謝樓主分享這么好的資料。
回復

使用道具 舉報

地板
ID:794979 發表于 2020-10-27 09:27 | 只看該作者
用的vc還是vs
回復

使用道具 舉報

5#
無效樓層,該帖已經被刪除
6#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表