博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
串口上位机程序编写
阅读量:5230 次
发布时间:2019-06-14

本文共 2359 字,大约阅读时间需要 7 分钟。

借助开源文件:Com_class.h

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

 

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

                2.

#include "Com_class.h"class CComDlgDlg : public CDialog{// Constructionpublic:	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// Implementationprotected: 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

你可能感兴趣的文章
C++对vector里面的元素排序及取任意重叠区间
查看>>
软件测试——性能测试总结
查看>>
12.4站立会议
查看>>
Java Concurrentmodificationexception异常原因和解决方法
查看>>
客户端访问浏览器的流程
查看>>
codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
查看>>
c++||template
查看>>
[BZOJ 5323][Jxoi2018]游戏
查看>>
编程面试的10大算法概念汇总
查看>>
Vue
查看>>
python-三级菜单和购物车程序
查看>>
条件断点 符号断点
查看>>
VMware12 + Ubuntu16.04 虚拟磁盘扩容
查看>>
设计模式——设计模式概述
查看>>
封装一个获取module.exports内容的方法
查看>>
动态连接库
查看>>
ServletContext 与application的异同
查看>>
水平垂直居中
查看>>
CSS3教程:border-image属性
查看>>
asp.netmvc常见功能链接
查看>>