串口问题,串口是打开的状态,但IsOpen属性显示的是fales,可能哪个地方出现问题?

star_xp 2014-07-13 03:31:22
我定义了一个静态的串口对象,我保证串口是肯定已经打开过的,因为串口在打开状态时指示灯才会亮。但是发数据时在判断串口是否打开时,IsOpen属性却为false....
我写了一个操作串口的类,其他类调用这个串口类中的方法向串口中写数据,可能出现的问题可能在哪里?求大神解答!!!
...全文
1168 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-07-15
  • 打赏
  • 举报
回复
引用 5 楼 star_xp 的回复:
[quote=引用 3 楼 Z65443344 的回复:] 我写了一个操作串口的类 ---------- 要么把类定义成静态类, 要么每次实例化的时候要传入你当前使用的串口实例 否则每次实例化都new一个出来,也没法操作你已经打开的那个串口啊
 class Serial
    {
        public SerialPort serialPort_Base;

        public Serial()
        {
            serialPort_Base = new SerialPort();//应该是这个地方的问题吧?这句话放在什么位置比较合适?
            serialPort_Base.DataReceived += new SerialDataReceivedEventHandler(serialPort_Base_DataReceived);
            serialPort_Base.NewLine = "\r\n";
        }

        internal SerialPort MySerialPort//系统的串口资源属性
        {
            get { return this.serialPort_Base; }
            set { this.serialPort_Base = value; }
        }
    }
[/quote] 你要不用静态,就需要重载构造函数,传递一个串口实例进去,而不是在里面new new完不是又变成一个新的实例了么,跟你已经打开的那个串口没有关系了
star_xp 2014-07-14
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
我写了一个操作串口的类 ---------- 要么把类定义成静态类, 要么每次实例化的时候要传入你当前使用的串口实例 否则每次实例化都new一个出来,也没法操作你已经打开的那个串口啊
 class Serial
    {
        public SerialPort serialPort_Base;

        public Serial()
        {
            serialPort_Base = new SerialPort();//应该是这个地方的问题吧?这句话放在什么位置比较合适?
            serialPort_Base.DataReceived += new SerialDataReceivedEventHandler(serialPort_Base_DataReceived);
            serialPort_Base.NewLine = "\r\n";
        }

        internal SerialPort MySerialPort//系统的串口资源属性
        {
            get { return this.serialPort_Base; }
            set { this.serialPort_Base = value; }
        }
    }
star_xp 2014-07-14
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
我写了一个操作串口的类 ---------- 要么把类定义成静态类, 要么每次实例化的时候要传入你当前使用的串口实例 否则每次实例化都new一个出来,也没法操作你已经打开的那个串口啊
有点懂了,试试先
於黾 2014-07-14
  • 打赏
  • 举报
回复
我写了一个操作串口的类 ---------- 要么把类定义成静态类, 要么每次实例化的时候要传入你当前使用的串口实例 否则每次实例化都new一个出来,也没法操作你已经打开的那个串口啊
villagedog 2014-07-14
  • 打赏
  • 举报
回复
实在不行,重新建一个变量来标识一下吧。
star_xp 2014-07-14
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
我写了一个操作串口的类 ---------- 要么把类定义成静态类, 要么每次实例化的时候要传入你当前使用的串口实例 否则每次实例化都new一个出来,也没法操作你已经打开的那个串口啊
用了静态类,已解决!谢谢了!!
TerryChin 2014-07-13
  • 打赏
  • 举报
回复
是不是重新实例化了一个串口出来? 最好贴下代码,要不然让人家给你猜?
内容概要:本文档名为《赵家湾学校后大门一百三十六栋.txt》,实则是一份综合性科研仿真资源索引,集中展示了多个技术领域的Matlab/Simulink与Python代码实现项目。内容涵盖风光互补制氢合成氨系统容量-调度优化、微电网能量管理、无人机三维路径规划、图像分割、信号处理、电力系统建模、模型预测控制(MPC)、深度学习预测模型(如LSTM、Transformer)、联邦学习、强化学习应用等多个前沿方向。文档不仅列出具体研究题目和算法模型,还整合了智能优化算法(如PSO、GWO、DBO等)、路径规划、车间调度、通信优化、雷达跟踪、元胞自动机模拟等通用技术模块,并附有网盘链接提供完整代码与仿真模型下载,旨在为科研人员提供可复现的技术支持与开发参考。; 适合人群:具备一定编程基础,从事电气工程、自动化、计算机科学、人工智能、控制工程、能源系统等相关领域的研究生、科研人员及工程技术开发者。; 使用场景及目标:①辅助高水平学术论文复现与科研项目开发;②为硕士/博士论文、课程设计、学科竞赛提供算法实现与仿真建模支持;③提升在新能源并网、智能控制、路径规划、负荷预测、故障诊断等领域的工程实践与创新能力。; 阅读建议:此文档为资源导航型材料,建议结合个人研究方向筛选对应主题,通过提供的百度网盘链接获取完整代码包,并配合相关文献进行仿真实验与参数调试,以实现高效复用、二次开发与技术创新。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧