搜索
有爱,有技术,有你^_^)y
╱人◕‿‿◕人╲订下契约(注册新用户)

合作站点账号登陆

QQ登录

只需一步,快速开始

快捷导航
查看: 383|回复: 1
收起左侧

关于PC双串口通信……显示端口被关闭_(:з」∠)_

[复制链接]

该用户从未签到

15

主题

23

好友

4879

积分

序章

积分
4879
发表于 2015-4-10 14:00:52 | 显示全部楼层 |阅读模式

╱人◕‿‿◕人╲定下契约

您需要 登录 才可以下载或查看,没有账号?╱人◕‿‿◕人╲订下契约(注册新用户)

x
求帮助QVQ我开着串口啊……用VSPD设置了两个虚拟相连的串口,然后使用串口调试助手也可以互相发送信息。但是在C#里面设置老是显示——serialPort1.Write(outdata);端口被关闭……
我也算是按教材打的代码?= =
因为第一片段是利用SeriaPort控件查询方式,没有serialPort2_DataReceived,然后事件又需要绑定……第二片段,没有timer控件,但是之前给出的设计窗口又有它的存在……所以我两个结合了(。
代码如下
[mw_shl_code=csharp,true]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication0410
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //串口初始化
        private void Form1_Load(object sender, EventArgs e)
        {
            serialPort1.PortName = "COM1";
            serialPort1.BaudRate = 9600;
            serialPort1.Open();
            serialPort2.PortName = "COM2";
            serialPort2.BaudRate = 9600;
            serialPort2.Open();
        }
        //发送数据
        private void button1_Click(object sender, EventArgs e)
        {
            string outdata = textBox1.Text;
            if (outdata == "")
            {
                MessageBox.Show("发送的数据不能为空!", "");
            }
            serialPort1.Write(outdata);
        }
        //接收数据
        private void timer1_Tick(object sender, EventArgs e)
        {
            string data;
            data = serialPort2.ReadExisting();
            textBox2.Text = textBox2.Text + data;
        }

        private void serialPort2_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            string data;
            data = serialPort2.ReadExisting();
            this.Invoke(new EventHandler(timer1_Tick));
        }


        //关闭串口,退出程序
        private void button2_Click(object sender, EventArgs e)
        {
            serialPort1.Close();
            serialPort2.Close();
            Close();
        }



    }
}[/mw_shl_code]
现在老大就坐我对面,简直要飙泪了(。

签名被小宅喵吞掉了~~~~(>_<)~~~~
回复

使用道具 举报

该用户从未签到

45

主题

29

好友

5万

积分

第三章

番茄易推倒

积分
52288

技术宅四周年庆组委会纪念

发表于 2015-4-12 23:28:25 | 显示全部楼层
没用过C#写过串口
估计三种情况
1.需要管理员权限
2.串口打开失败(加句输出语句检查串口打开是否成功了)
3.指定的串口被占用了(可能是程序中打开了串口退出时没有关闭上导致的)

评分

参与人数 1宅币 +20 活跃 +5 收起 理由
原味板烧鸡腿堡 + 20 + 5

查看全部评分

今を大切にして,ヤンデレしています
回复 支持 反对

使用道具 举报

本版积分规则

小黑屋|手机版|技术宅(Z站|基宅) ( 粤ICP备18082987号-1 )

GMT+8, 2025-6-16 20:41 , Processed in 0.166522 second(s), 24 queries , Redis On.

Copyright © 2018 技术宅社区

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表