精华内容
下载资源
问答
  • 串口上位机程序编写

    2015-05-21 12:00:00
    程序实例:http://pan.baidu.com/s/1qWHUQmS 使用步骤: 1.包含Com_class.h头文件 2. #include "Com_class.h" class CComDlgDlg : public CDialog { // Construction public: ...

    借助开源文件:Com_class.h

    程序实例:http://pan.baidu.com/s/1qWHUQmS

     

    使用步骤:  1.包含Com_class.h头文件   

                    2.

    #include "Com_class.h"
    class CComDlgDlg : public CDialog
    {
    // Construction
    public:
    	LRESULT On_Receive(WPARAM wp, LPARAM lp);
    	_thread_com com2;
    	CComDlgDlg(CWnd* pParent = NULL);	// standard constructor
    
    // Dialog Data
    	//{{AFX_DATA(CComDlgDlg)
    	enum { IDD = IDD_COMDLG_DIALOG };
    	CString	m_e;
    	//}}AFX_DATA
    
    	// ClassWizard generated virtual function overrides
    	//{{AFX_VIRTUAL(CComDlgDlg)
    	protected:
    	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
    	//}}AFX_VIRTUAL
    
    // Implementation
    protected:
    	HICON m_hIcon;
    
    	// Generated message map functions
    	//{{AFX_MSG(CComDlgDlg)
    	virtual BOOL OnInitDialog();
    	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    	afx_msg void OnPaint();
    	afx_msg HCURSOR OnQueryDragIcon();
    	virtual void OnOK();
    	afx_msg void OnButton1();
    	afx_msg void OnButton2();
    	afx_msg void OnButton3();
    	//}}AFX_MSG
    	DECLARE_MESSAGE_MAP()
    };
    
    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
    
    #endif // !defined(AFX_COMDLGDLG_H__75BDFED3_C096_4C40_AB56_E631ECD7434D__INCLUDED_)
    

      3.添加消息映射

    BEGIN_MESSAGE_MAP(CComDlgDlg, CDialog)
        //{{AFX_MSG_MAP(CComDlgDlg)
        ON_WM_SYSCOMMAND()
        ON_WM_PAINT()
        ON_WM_QUERYDRAGICON()
        ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
        ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
        ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
        //}}AFX_MSG_MAP
        ON_MESSAGE(ON_COM_RECEIVE, On_Receive)
    END_MESSAGE_MAP()

    4.添加重载函数

    LRESULT CComDlgDlg::On_Receive(WPARAM wp, LPARAM lp)
    {
        int len;
        char str[100];
        len = com2.read(str, 100);
        if(len > 0)
        {
            char com_str[10];
            strcpy(com_str, "COM");
            ltoa((long)wp, com_str + 3, 10); //    WPARAM 保存端口号
            m_e += com_str;
            m_e += " : ";
            m_e += str;
            m_e += "\r\n";
            UpdateData(false);
        }
        
        return 0;
    }

    5.打开串口

    void CComDlgDlg::OnButton1() 
    {
        if(!com2.open(5))//默认是9600 调用不同的OPEN可以调节波特率
            MessageBox("open fail", "COM5", MB_OK);
        else
            com2.set_hwnd(m_hWnd);
        
    }

    6.发送数据

    void CComDlgDlg::OnButton3() 
    {
        char  buff[100];
        // TODO: Add your control notification handler code here
    //    com2<<1;
        buff[0]=0x55;
        com2.write(buff,1);
    }

    7.关闭串口

    void CComDlgDlg::OnButton2() 
    {
        com2.close();
    }

     

    转载于:https://www.cnblogs.com/yuqilihualuo/p/4519347.html

    展开全文
  • 深入浅出VC++串口编程 上位机程序源码 串口助手上位机程序的VC++6.0的编写
  • VC++编写简单串口上位机程序

    万次阅读 多人点赞 2017-10-31 21:56:13
    VC++编写简单串口上位机程序 串口通信,MCU跟PC通信经常用到的一种通信方式,做界面、写上位机程序的编程语言、编译环境等不少,VB、C#、LABVIEW等等,我会的语言很少,C语言用得比较多,但是还没有找到如何用...
    VC++编写简单串口上位机程序


    串口通信,MCU跟PC通信经常用到的一种通信方式,做界面、写上位机程序的编程语言、编译环境等不少,VB、C#、LABVIEW等等,我会的语言很少,C语言用得比较多,但是还没有找到如何用C语言来写串口通信上位机程序的资料,在图书管理找到了用VC++编写串口上位机的资料,参考书籍,用自己相当蹩脚的C++写出了一个简单的串口上位机程序,分享一下,体验一下单片机和PC通信的乐趣。
    编译环境:VC++6.0
    操作系统:VMWare虚拟出来的Windows XP


    程序实现功能:

    1、 PC初始化COM1口,使用n81方式,波特率57600与单片机通信。PC的COM口编号可以通过如下方式修改:


    当然也可以通过上位机软件编写,通过按钮来选择COM端口号,但是此次仅仅是简单的例程,就没有弄那么复杂了。COM1口可用的话,会提示串口初始化完毕。否则会提示串口已经打开Port already open,表示串口已经打开,被占用了。

    2、 点击开始转换,串口会向单片机发送0xaa,单片机串口中断接收到0xaa后启动ADC转换一次,并把转换结果ADCL、ADCH共两个字节的结果发送至PC,PC进行数值转换后在窗口里显示。(见文章末尾图)

    3、 为防止串口被一只占用,点击关闭串口可以关闭COM1,供其它程序使用,点击后按钮变为打开串口,点击可重新打开COM1。


    程序的编写:
    1、 打开VC++6.0建立基于对话框的MFC应用程序Test







    2、 在项目中插入MSComm控件:工程->增加到工程->Components and Controls->双击Registered ActiveX Controls->选择Microsoft Communications Control, version 6.0->Insert,按默认值添加,你会发现多了个电话图标,这是增加后串口通信控件。



    3、 删除确认、取消和提示框,添加“电话”、进程、静态文本、按钮、编辑框,拖动添加的控件,根据喜好布局。


    4、 右击编辑框Edit选择属性,在样式里设置,勾选多行、垂直滚动,其它可按默认值。
    右击静态文本Text选择属性,在常规设置里,修改标题。
    右击按钮PushButton选择属性,在在常规设置里,修改标题。
    修改后界面如下,程序写出来运行时“电话”标志会自动消失。


    5、 查看->建立类向导MFC ClassWizard->Member Viariable,选择ClassName为CTestDlg的类,Control ID为MSCOMM1,双击它,为它添加控制变量m_comm1。
    类似的,选择IDC_BUTTON2添加控制变量m_serial。
    (建立类向导也可以右击然后在弹出的快捷菜单里选择建立类向导)



    至此,基本框架已经出来了,编译后运行可以看到如下所示的界面。(组建->全部组件,然后 组建->执行)


    6、 点击左侧的视图窗口,可以在三种模式下切换,第三个是打开我们的源代码窗口,第一个是类,第二个是窗体的资源视图。




    展开全文
  • VC++编写简单串口上位机程序.docx
  • 串口上位机程序

    2015-03-04 17:14:05
    这是一个基于VC++编写的一个串口上位机程序,可以在线调试单片机程序
  • C#编写一个简单串口通讯上位机

    千次阅读 2019-05-15 14:22:23
    一:上位机的作用 1、可以模拟上位机进行modbus协议主机的使用。...6、是工程技术人员监视、调试串口程序的必备工具 二:参数配置 串口基础参数包括:波特率,数据位,停止位,校验位。 1. 波特率:串口通讯速率...

    一:上位机的作用
    1、可以模拟上位机进行modbus协议主机的使用。
    2、可以调试具有modbus协议的所有设备
    3、可以在线设置各种通讯速率、奇偶校验、通讯口而无需重新启动程序。
    4、支持 03 06 16 几条常用的命令。
    5、可以自动显示接收到的数据,
    6、是工程技术人员监视、调试串口程序的必备工具
    二:参数配置
    串口基础参数包括:波特率,数据位,停止位,校验位。 1. 波特率:串口通讯速率,可设置范围为:600~230.4Kbps,波特率支持任意波特率。 2. 数据位:数据位的长度,范围为 5~8。 3. 停止位:可设置范围为:1~2 4. 校验位:数据通讯的校验位,支持 None、Odd、Even、Mark、Space 五种校验方式 通过设置串口参数,保持与串口连接设备串口参数一致可以保证通许正常进行
    三:命名空间
    在这里插入图片描述

    1.在 C#中,命名空间提供了一种组织相关类和其它类型的方式。我理解的命名 空间就是一个集装箱,里面可以装下很多类和方法。其实我们也可以认为所谓的 命名空间相当于 C 语言中的头文件,只不过 include 变为了 using namespace。具 体的书写规范见代码清单在这里插入图片描述

    第 1 到 7 行代码全都为系统 自带的命名空间。第 11 行为开发人员自定义的命名空间,之后的每一个上位机 项目都是一个自定义命名空间。C#的命名空间和 C 的头文件遵循一样的 规则,即要想使用某方法某函数则必须要包含方法所在的命名空间或者头文件。 这是相同点。不同点则表现在 C 语言在声明了头文件和函数接口后必须要在对应 的 C 文件中编写函数体后才可使用。C#则将省去了函数声明,直接即可编写对应 的函数体。
    四:类
    1.什么是类
    在 C#开发中,类(class)至关重要。可以认为类是 C#一个很大的主题。我们在单片机软件开发中设计数据结构时往往离 不开先设计结构体,其实类就相当于结构体,这也是面向对象的一个前提条件。 我们可以将类抽象成一个既能存储数据又能执行代码的数据结构。它包含数据成 员和函数成员,因此类对 C#代码的封装起着举足轻重的作用。
    2.如何声明一个类
    类的声明和结构体类似,即定义了一个新类的成员和特征。但是它并不创建 类的实例,相当于结构体声明后并不分配内存,只有在使用时声明后才会分配内 存一样,类的声明和实例化不可混淆。类的声明方式如下代码清单所示:在这里插入图片描述
    类的声明非常简单。其中类的成员可以是变 量,也可以是函数方法。
    五:属性、方法及事件

    1. 什么是属性
      我们简要的接触了类的概念,类相当于一个结构体但不能 等价于一个结构体,因为类是具有属性的,而结构体没有。在结构体内部定义一个缓冲区,这个缓冲区的大小必须在程序编译前确定下来,运行中不可改变。但 类通过属性却可以修改这个缓冲区的大小。那么什么是属性呢?属性就好比一个 人的发色,生来黑色,但不会永远是黑色,我们可以随意染成红蓝紫色。也就是 说属性是一个类的动态特性,比如上位机在运行过程中我们可以随时修改波特率。
      2.什么是方法
      C#中的方法类似于 C 语言函数,只是 C#赋予了方法属性,方法既可以是私有 的,又可以是共用的。谈及私有方法,其实我们完全可以将它理解为 C 语言函数 套了一个 static 关键字,代表这是单文件中使用的。
      3.什么是事件
      学习 STM32 之时,我们已经接触过事件的概念。事件是由硬件实现,可触发 中断以及关联性操作,如 ADC,DMA 等。它和中断最大的区别在于事件无需返 回,而中断需要返回。事件不仅在 MCU 硬件中大量使用,同时又与单片机软件 架构设计息息相关。 所有的 PC 端程序都需要在某个特定的时刻响应某个操作,处理某件事情, 比如响应鼠标单击事件,键盘事件等,因此 C#也引入了事件触发机制。在上一 节的内容中我们简要介绍了委托,事件本质上源于委托,是一种特殊的委托,它 为委托提供了封装性,一方面允许从类的外部增删绑定方法,另一方面又严禁从 类的外部触发委托所绑定的方法。 我们的目的是快速开发上位机,因此在使用过程中完全可以将事件理解为中 断,事件回调函数就是我们常说的中断服务函数。同时一般情况下我们也不需要 自己封装事件,调用控件已经封装好的事件函数即可。
      六:遇到的问题及解决方法
      1.InitializeComponent()方法是用来初始化窗体组件的,在InitializeComponent之前,窗体的各个控件还没有进行初始化,比如说窗体上有一个TextBoxUserName,在InitializeComponent之前它还只是一个TextBox类型的变量而已。
      如果在InitializeComponent之前调用这个TextBox的属性或方法,就会出错。
      再比如说你拖上取一个TextBox,它放在Form的位置,TextBox的一些属性,包括new 这个TextBox都放在那个函数里面处理的。
      2.未能找到类型或命名空间名称“XXXX”是否缺少 using 指令或程序集引用?
      这个相比来说就简单直接很多,如下;项目中 App_Code 文件夹中的类的命名空间;在添加的页面的 using XXXX 时,提示 “未能找到类型或命名空间名称“XXXX”是否缺少 using 指令或程序集引用?”。说明要引用的这个类文件的 生成操作 属性没有选择 编译,vs中并没有承认此命名空间。修改:右击类文件-》属性-》生产操作-》将“内容”改为“编译”,然后重新生成,问题解决。

    按键触发问题:在原有的按键触发事件1里添加一个触发事件2不能执行,即使将事件1代码注释仍不可执行执行事件2,必须再添加一个引用.
    原因 :没有注册事件,应在原来的属性里注册一个触发事件
    button1.Click += new System.EventHandler(this.button1_Click);
    取消注册:button1.Click -= new System.EventHandler(this.button1_Click);

    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    展开全文
  • 用Vc编写上位机界面,同过串口接收数据,处理后绘图并进行显示,同时用ACCESS存储数据。
  • 本节内容为电脑串口通信上位机编写,使用MFC编写串口通信上位机程序,主要是通过微软提供的MSComm控件来编写的。使用控件提供的API函数,编写上位机较为简单,利于开发。本例程是基于电压采集实验完成的,下位机...

           本节内容为电脑串口通信上位机的编写,使用MFC编写串口通信上位机程序,主要是通过微软提供的MSComm控件来编写的。使用控件提供的API函数,编写上位机较为简单,利于开发。本例程是基于电压采集实验完成的,下位机使用的是TI的C2000系列DSP TMS320F280049C,下位机将采集到的电压数据通过串口发送给上位机上显示,上位机中添加了TeeChart控件来显示采集到的电压波形。TeeChart控件的使用将会在后续的博客中讲述,敬请关注。

    (1)MSComm控件介绍

          MSComm控件的下载网址如下:https://download.csdn.net/download/fanxianyan1993/10990498

          MSComm控件的常用属性如下所示:

    CommPort: 设置和获取当前的串口号  put_CommPort,get_CommPort函数
    PortOpen: 打开或者关闭串口  put_PortOpen函数
    Settings: 设置和获取当前通信的数据格式  put_Settings,get_Settings函数

    Input:

    从接收缓冲区返回和删除字符

    Output:

    向传输缓冲区写一个字符串

         MSComm控件的常用函数的使用方式如下所示:

    1.  m_ctrlComm.get_PortOpen();    获取当前端口的状态。
    2.  m_ctrlComm.put_CommPort(BOOL newValue); 设置串口编号。
    3.  m_ctrlComm.put_PortOpen(TRUE); 打开串口。
    4.  m_ctrlComm.put_Settings(_T("460800,n,8,1"));设定串口的通信格式。
    5.  m_ctrlComm.put_InputMode(1); 0:以文本方式取回数据;1:以二进制方式检取数据。
    6.  m_ctrlComm.put_RThreshold(1); 参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件。
    7.  m_ctrlComm.put_InputLen(0); 设置当前接收区数据长度为0。

    (2)建立工程

            先创建基于对话框的MFC程序,在对话框中添加MSComm控件。在对话框界面上点击右键,点击插入ActiveX控件(X),再选择Microsoft Communications Control,version 6.0(SP6)。这时对话框界面上就会出现一个电话的图标,任意放个位置,程序运行后看不到该图标。

    (3)连接串口

            串口连接的程序如下所示,打开串口前先判断串口是否已经被打开了,如果串口已经打开了,先关闭串口,再对串口进行操作。打开串口后再对串口进行配置,主要包括数据格式、输入模式以及缓冲区的设置。

    void CMFC_COM_Test02Dlg::OnBnClickedComOpen()
    {
    	if(nConnectFlag == 0)
    	{
    		if(m_ctrlComm.get_PortOpen())
    			m_ctrlComm.put_PortOpen(FALSE);
    		
    		m_ctrlComm.put_CommPort(m_nCom+1);
    		m_ComBo.SetCurSel(m_nCom);
    		 
    		if(!m_ctrlComm.get_PortOpen())
    		{
    			m_ctrlComm.put_PortOpen(TRUE);				//打开串口
    //			AfxMessageBox(_T("打开串口成功!"));
    			GetDlgItem(IDC_COM_OPEN) ->SetWindowText(_T("关闭串口"));
    			nConnectFlag=1;
    		}	
    		else
    			AfxMessageBox(_T("打开串口失败!"));
    		
    		m_ctrlComm.put_Settings(_T("460800,n,8,1"));
    		m_ctrlComm.put_InputMode(1); //1:表示以二进制方式检取数据
    		m_ctrlComm.put_RThreshold(1); 
    		//参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件
    		m_ctrlComm.put_InputLen(0); //设置当前接收区数据长度为0
    		m_ctrlComm.get_Input();		//先预读缓冲区以清除残留数据
    	}
    	else
    	{
    		if(m_ctrlComm.get_PortOpen())
    		{
    			m_ctrlComm.put_PortOpen(FALSE);			//关闭串口
    		}
    
    		GetDlgItem(IDC_COM_OPEN) ->SetWindowText(_T("开启串口"));
    		nConnectFlag = 0;
    		AfxMessageBox(_T("串口关闭成功!"));
    	}	
    }

    (4)自动识别串口

           当电脑上插入了串口线后,需要上位机软件选择相应的串口号来打开串口。添加自动串口识别程序后,当电脑上接入了串口后,上位机软件就能自动识别串口号。在MFC编程中,通过调用CreateFile函数打开串口,通过函数返回的句柄来判断串口是否存在。串口识别的代码需放在对话框初始化函数OnInitDialog()当中,这样当打开串口时就能获得有效的串口编号。串口识别的源代码如下所示:

    	HANDLE hComm;
    	CString ComName[] = {_T("COM1"),_T("COM2"),_T("COM3"),_T("COM4"),
    		_T("COM5"),_T("COM6"),_T("COM7"),_T("COM8"),_T("COM9")};
    
    	for(int i=0;i<9;i++)
    	{
    		hComm =(HANDLE)CreateFile(ComName[i], GENERIC_READ | GENERIC_WRITE, 0, 
                                       NULL,OPEN_EXISTING, 0, NULL);
    
    		if(hComm != INVALID_HANDLE_VALUE)		
    		{
    			m_nCom = i;
    			m_ComBo.SetCurSel(m_nCom);
    			CloseHandle(hComm);				//关闭句柄,不然出错
    			break;
    		}
    	}

    (5)数据接收

           上位机接收数据时,需要添加消息响应函数来获取串口发送的数据。鼠标右键点击串口通信的控件,点击添加事件处理程序,再点击添加编辑后,编译器就会添加消息处理函数OnCommMscomm()。

    消息响应函数中主要通过get_Input()函数从缓冲区中读取数据,数据接收的源代码如下所示:

    void CMFC_COM_Test02Dlg::OnCommMscomm()
    {
    	VARIANT variant_inp;
        COleSafeArray safearray_inp;
        LONG len,k;
        BYTE RxData[2048];				//设置BYTE数组 An 8-bit integerthat is not signed.
        CString strTemp;
    	CString RX_Data;
    
        if(m_ctrlComm.get_CommEvent()==2)		//事件值为2表示接收缓冲区内有字符
        {										//以下你可以根据自己的通信协议加入处理代码
            variant_inp=m_ctrlComm.get_Input(); //读缓冲区
            safearray_inp=variant_inp;			//VARIANT型变量转换为ColeSafeArray型变量
            len=safearray_inp.GetOneDimSize();	//得到有效数据长度
            for(k=0;k<len;k++)
                safearray_inp.GetElement(&k,RxData+k);	//转换为BYTE型数组
            for(k=0;k<len;k++)					//将数组转换为Cstring型变量
            {
                BYTE bt=*(char*)(RxData+k);		//字符型
                strTemp.Format(_T("%c"),bt);	//将字符送入临时变量strtemp存放
    			RX_Data += strTemp;
            }
    		m_Voltage = RX_Data;
    				
    		if(nDisplayFlag)
    		{
    			m_chart.Series(0).AddXY(m_nCount,_ttoi(RX_Data),NULL,NULL);
    			m_nCount++;
    			if(m_nCount>=2000)
    			{
    				m_chart.Series(0).Clear();
    				m_nCount=0;
    			}
    		}
        }
    	UpdateData(FALSE); 
    }

    (6)发送数据

        上位机发送数据时,只需调用put_Output()即可。程序的源码如下所示:

    void CMFC_COM_Test01Dlg::OnBnClickedSend()
    {
    	UpdateData(TRUE);            //从控件上获取数据
    
    	CString strTxData;
    	int nLen = m_RichEditRXData.GetTextLength();
    	m_RichEditRXData.SetSel(0,nLen);
    	strTxData = m_RichEditRXData.GetSelText();
    	
    	m_ctrlComm.put_Output(COleVariant(strTxData));
    	m_TxNum++;
    
    	UpdateData(FALSE); 
    }

    (7)上位机软件

          最后,编写的上位机软件如下图所示。下位机通过串口将采集到的电压(图中并非实际采集到的的电压,而是下位机随意发送的数据)发送给上位机,上位机再将电压以波形的形式显示出来。

    程序源码的下载地址为:https://download.csdn.net/download/fanxianyan1993/10991289

     

    提问方式:有啥不懂的可以随时向我提问哈,扫描下方二维码我会在第一时间给大家回复的哈,谢谢。 

    展开全文
  • 使用MFC来编写串口程序,需要有一定的c++语言功底,要清楚MFC代码的组织方式。 鉴于绝大多数的教程还停留在vc6.0这个骨灰级的环境,特在此说明一下VC2012下的代码组织方式,和大家一起交流下~ 本文略去建立窗体的...
  • 我自己用串口控件CMScomm编写的第一个上位机程序
  • 用labview编写串口读取上位机程序,实现与单片机的串口通信,并能将数据实时显示在示波图表界面上,还能将采集的数据以文本形式保存。
  • 采用MFC+winapi编写的一个串口调试工具,支持程序升级,以及shell命令调试,日志保存等功能。采用多线程通信机制来控制升级过程界面刷新以及后台升级数据包发送解析等,对于想要做C++上位机工具的同学来说可以从种学...
  • 使用MFC来编写串口程序,需要有一定的c++语言功底,要清楚MFC代码的组织方式。 鉴于绝大多数的教程还停留在vc6.0这个骨灰级的环境,特在此说明一下VC2012下的代码组织方式,和大家一起交流下~ 本文略去建立窗体的...
  • 本文以Delphi为开发工具,介绍了编写上位机串口通信程序的方法。同时,对其中的几个关键问题进行了阐述和讨论。
  • 摘要:VB源码,系统相关,串口通信 VB编写串口通信程序,主要用于上位机与下位机间的通信,VB串口通讯程序源码下载,截图如上图所示。
  • 自己初学C++时编写上位机串口通信小程序,希望能帮到你。
  • QT5.5串口上位机

    2018-09-07 22:12:52
    QT5.5编写串口上位机程序,实现了串口收发,波特率设置等功能
  • 本文档采用visual studio 2012 ,编写简单串口上位机源代码。 主要用于学习,所以程序写的比较粗糙,见谅! 实例一:简易串口调试助手。 实例二:JPEG图像显示上位机。 这是160*120图像效果(像素越高帧率越低)
  • 昨天有一个学弟找我帮忙写个程序,任务是编写一个串口上位机控制Arduino板载LED,已经焦头烂额了好久,无从下手,本来想几句话就能说清楚如何做,但是麻雀虽小,五脏俱全,包含了Arduino、串口、C#编程,写篇文章...
  • 2、完全采用Serialport 类 编写串口程序,没有控件无法加载的烦恼 3、可以实现自动搜索串口号,默认格式:9600,N,81格式,进行数据收发 4、在程序中,带有Socket编程,采用本机回路IP:127.0.0.1 5、适合MFC和...
  • 串口上位机源码

    2012-11-06 16:32:27
    串口提取数据,显示在图形中,VC++编写简单串口上位机程序 串口通信,MCU跟PC通信经常用到的一种通信方式,做界面、写上位机程序的编程语言、编译环境等不少
  • 1 c# 等快速开发的工具。 2 串口通讯,并口通讯的知识体系。 3 网络通讯协议支持。 转载于:https://www.cnblogs.com/sdgxbooy/archive/2013/03/29/8902353.html...
  • VB上位机程序编写_百度文库 VB上位机程序编写 - VB Mscomm 控件基本介绍 VB Mscomm 控件 一、MSComm 控件的主要属性、事件 1、MSComm 的属性 Commport:设置或返回串口号。 ... 7页 浏览:1920次 wenku.baidu....
  • labview串口上位机

    2011-04-23 16:33:50
    程序是基于LABVIEW中G语言(图形化语言)编写串口上位机程序简洁明了,很适合初学者使用!
  • 打算使用Visual Studio编写一个串口上位机程序,然后进行测试。 原来的上位机各种BUG,受不了了。自己写一个得了。 一、创建 MFC 工程 选择MFC应用: 应用程序类型选择 基于对话框: 生成效果: 二、设置控件 ...
  • QT5串口上位机源代码

    2018-09-19 15:13:57
    QT5.5编写串口上位机程序,实现了串口收发,波特率设置等功能

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 288
精华内容 115
关键字:

串口程序上位机编写