打开/关闭串口

          //关闭串口                if (((MainForm)this.Owner).serialPort_GPS != null)
                {
                    try
                    {
                        if (((MainForm)this.Owner).serialPort_GPS.IsOpen)
                        {
                            ((MainForm)this.Owner).serialPort_GPS.Close();
                            ((MainForm)this.Owner).serialPort_GPS = null;
                        }
                    }
                    catch
                    {
                        checkBox_GPS_Enabled.Checked = true;

                        Form_MessageBox FMB = new Form_MessageBox();
                        FMB.m_strInfo = "关闭GPS串口失败!\r\n请检查是否被占用!";
                        FMB.ShowDialog();
                    }
                }

  

                //新建并打开串口          if (((MainForm)this.Owner).serialPort_GPS == null)
                {
                    try
                    {
                        ((MainForm)this.Owner).serialPort_GPS = new SerialPort(
                            comboBox_GPS_PortName.Text,
                            Convert.ToInt32(comboBox_GPS_BaudRate.Text),
                            (Parity)comboBox_GPS_Parity.SelectedIndex,
                            Convert.ToInt32(comboBox_GPS_DataBits.Text),
                            (StopBits)comboBox_GPS_StopBits.SelectedIndex);
                        //打开GPS串口
						((MainForm)this.Owner).serialPort_GPS.Open();
                        //设置频率?
						((MainForm)this.Owner).SetGSVFreq();
						//设置GPS模式
                        ((MainForm)this.Owner).SetGPSOutMode();

                        comboBox_GPS_BaudRate.Enabled = false;
                        comboBox_GPS_DataBits.Enabled = false;
                        comboBox_GPS_Parity.Enabled = false;
                        comboBox_GPS_PortName.Enabled = false;
                        comboBox_GPS_StopBits.Enabled = false;
                        textBox_GPS_TestData.Enabled = false;
                        BTN_GPS_PortTest.Enabled = false;
                        BTN_GPS_BackToDefault.Enabled = false;

                    }
                    catch
                    {
                        ((MainForm)this.Owner).serialPort_GPS = null;
                        checkBox_GPS_Enabled.Checked = false;

                        Form_MessageBox FMB = new Form_MessageBox();
                        FMB.m_strInfo = "打开GPS串口失败!\r\n请检查串口配置!\r\n请检查串口是否被占用!";
                        FMB.ShowDialog();
                    }
                }

  

时间: 2024-10-29 19:10:54

打开/关闭串口的相关文章

【转】C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁

第一篇文章我相信很多人不看都能做的出来,但是,用过微软SerialPort类的人,都遇到过这个尴尬,关闭串口的时候会让软件死锁.天哪,我可不是武断,算了.不要太绝对了.99.9%的人吧,都遇到过这个问题.我想只有一半的人真的解决了.另外一半的人就睁只眼闭只眼阿弥佗佛希望不要在客户那里出现这问题了. 你看到我的文章,就放心吧,这问题有救了.我们先回顾一下上一篇中的代码 [c-sharp] view plaincopy void comm_DataReceived(object sender, Se

C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁 ?

C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁 ? 标签: c#objectuibyte通讯.net 2010-05-19 08:43 55212人阅读 评论(188) 收藏 举报  分类: 通讯类库设计(4)  版权声明:本文为博主原创文章,未经博主允许不得转载. 第一篇文章我相信很多人不看都能做的出来,但是,用过微软SerialPort类的人,都遇到过这个尴尬,关闭串口的时候会让软件死锁.天哪,我可不是武断,算了.不要太绝对了.99.9%的人吧,都遇到过这个问

fopen(),fclose() 打开/关闭文件

打开/关闭/刷新流 1. fopen() 打开流 功能: 1)fopen()打开由 path指定的一个文件. 2)fdopen()获取一个先有的文件描述符,并使一个标准的I/O流与该描述相结合.此函数常用于由创建管道和网络通信函数小所返回的描述符.因为这些特殊类型的文件不能用标准I/O fopen函数打开,我们必须先调用设备专用函数以获得一个文件描述符,然后用fopen使一个标准I/O流与该描述符相关联. 3)fropen()在一个指定的流上打开一个指定的文件,如若该流已经打开,则先关闭该流.若

HTML5-video(播放暂停视频;打开关闭声音;进度条)

<!DOCTYPE html> <html> <head> <title>HTML5-video(播放暂停视频:打开关闭声音:进度条)</title> <meta charset="utf-8"/> </head> <body> <video id="video1" controls="controls" width="400px&qu

activity的打开关闭动画

Activity的打开关闭或者说相互跳转之间可以设置动画的.默认的打开关闭直接消失或出现,比较不优美,但是有的手机Rom对这个默认做了修改,比如红米HM1,默认的就是新页面自右向左滑动出现,自左向右滑动消失. 设置动画有两种方法: 1.利用Activity的方法在代码中设置: public void overridePendingTransition (int enterAnim, int exitAnim)Call immediately after one of the flavors of

代码验证C#执行”文件打开关闭操作“耗时

2017-04-19 部门经理习惯用C#做数据清洗,遇到个需要验证的问题,在一个万次左右循环内对文件执行打开关闭操作,比在循环前打开文件.循环后关闭文件耗时多多少. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Diagnostics; using Sy

android监听屏幕打开关闭广播无响应的情况

android在屏幕打开和关闭的时候会发出广播,但是如果receiver配置在AndroidManifest.xml中时,receiver是接受不到任何广播的. <receiver android:name="cn.abcd.listener.ScreenStateReceiver" > <intent-filter> <action android:name="android.intent.action.SCREEN_OFF" /&g

CC2541 关闭串口问题

在调试低功耗时,最好关闭串口,需要修改宏: HAL_UART=FALSE HAL_UART_DMA=1 HAL_UART_ISR=0 HAL_UART_TX_BY_ISR=1 但是修改完之后会编译错误,提示 Undefine external "print_msg"... 原因是这个函数在 _hal_uart_dma.c 文件中定义,但是修改了宏之后也把 #include "_hal_uart_dma.c" 给注释掉了,所以找不到 print_msg 函数,最简单的

Linux系统编程-文件打开关闭

一.文件描述符 对于Linux而言,所有对设备或文件的操作都是通过文件描述符进行的.当打开或者创建一个文件的时候,内核向进程返回一个文件描述符(非负整数).后续对文件的操作只需通过该文件描述符,内核记录有关这个打开文件的信息(file结构体). 一个进程启动时,默认打开了3个文件,标准输入.标准输出.标准错误,对应文件描述符是0(STDIN_FILENO).1(STDOUT_FILENO).2(STDERR_FILENO),这些常量定义在unistd.h头文件中. 另外介绍下面两个函数: fil