C#简单的串口通信程序 注释详细适合学习

部分源码:

try
            {
                serialPort1.Close();  //關閉串口
                button1.Enabled = true;   //打卡串口按鈕可用
                button2.Enabled = false;  //關閉串口按鈕不可用

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

        private void button3_Click(object sender, EventArgs e)
        {
            byte[] Data = new byte[1]; //數據一個字節就夠用了
            if (serialPort1.IsOpen)   //判斷串口是否打開,如果打開執行下一步操作
            {
                if (textBox2.Text != "")
                {
                    if (!radioButton1.Checked) //如果發送模式是字符模式
                    {
                        try
                        {
                            serialPort1.WriteLine(textBox2.Text);  //寫數據
                        }
                        catch (Exception err)
                        {
                            MessageBox.Show("串口寫入錯誤", "錯誤");
                            serialPort1.Close();
                            button1.Enabled = true;   //打卡串口按鈕可用
                            button2.Enabled = false;  //關閉串口按鈕不可用
                        }
                    }
                    else
                    {
                         //                        字符串转换为二进制数据:
                         //        byte[] bytes = new byte[str.Length / 2];
                         //        for (int i = 0; i < str.Length; i += 2)
                         //         { bytes[i / 2] = (byte)Convert.ToByte(str.Substring(i, 2), 16);}

                        try
                        {
                            for (int i = 0; i < (textBox2.Text.Length - textBox2.Text.Length % 2) / 2; i++) //取余3運算作用防止用戶輸入字符
                            {
                                Data[0] = Convert.ToByte(textBox2.Text.Substring(i * 2, 2), 16);
                                serialPort1.Write(Data, 0, 1);  //循環發送(如果輸入字符為0A0BB,則只發送0A,0B)
                            }
                            if (textBox2.Text.Length % 2 != 0)  //剩下一位單獨處理
                            {
                                Data[0] = Convert.ToByte(textBox2.Text.Substring(textBox2.Text.Length - 1, 1), 16);  //單獨發送B(0B)
                                serialPort1.Write(Data, 0, 1);  //發送
                            }
                        }
                        catch (Exception err)
                        {
                            MessageBox.Show("串口寫入錯誤", "錯誤");
                            serialPort1.Close();
                            button1.Enabled = true;   //打卡串口按鈕可用
                            button2.Enabled = false;  //關閉串口按鈕不可用
                        }

     /*                   for (int i = 0; i < (textBox2.Text.Length - textBox2.Text.Length % 2) / 2; i++) //取余3運算作用防止用戶輸入字符
                        {
                            Data[0] = Convert.ToByte(textBox2.Text.Substring(i * 2, 2), 16);
                            serialPort1.Write(Data, 0, 1);  //循環發送(如果輸入字符為0A0BB,則只發送0A,0B)
                        }
                        if (textBox2.Text.Length % 2 != 0)  //剩下一位單獨處理
                        {
                            Data[0] = Convert.ToByte(textBox2.Text.Substring(textBox2.Text.Length - 1, 1), 16);  //單獨發送B(0B)
                            serialPort1.Write(Data, 0, 1);  //發送
                        }
      */
完整源码详见附件

源码下载:

暂无优惠

已有0人支付

1,本站所有资源来源于用户上传和网络搜集,如有侵权请邮件联系站长删除。
2,分享目的仅供大家个人的学习用途,请不要用于商业用途。
3,如果你也有好的源码或者教程,可以投稿到本站,采纳后有积分奖励。
4,本站提供的各类资源均不保证其可用性及完整性,也没有任何技术服务。
5,如有链接无法下载、失效、过期,请联系管理员处理。
6,本站资源部分需要积分只是赞助,仅用于本站服务器和日常运营所需,不提供任何技术支持。
快捷联系方式 Email:admin@lzbk.com QQ:361113272
蓝知博库 » C#简单的串口通信程序 注释详细适合学习

提供最优质的资源集合

立即查看 了解详情