部分源码:- 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); //發送
- }
- */
- 完整源码详见附件
复制代码
c#串口通信源码.zip
(60.17 KB, 售价: 1 E币)
【必读】版权免责声明
1、本主题所有言论和内容纯属会员个人意见,与本论坛立场无关。2、本站对所发内容真实性、客观性、可用性不做任何保证也不负任何责任,网友之间仅出于学习目的进行交流。3、对提供的数字内容不拥有任何权利,其版权归原著者拥有。请勿将该数字内容进行商业交易、转载等行为,该内容只为学习所提供,使用后发生的一切问题与本站无关。 4、本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 5、本网站所有软件和资料均为网友推荐收集整理而来,仅供学习用途使用,请务必下载后两小时内删除,禁止商用。6、如有侵犯你版权的,请及时联系我们(电子邮箱1370723259@qq.com)指出,本站将立即改正。
|
|