国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

專業(yè)網(wǎng)站定制公司新開店鋪怎么做推廣

專業(yè)網(wǎng)站定制公司,新開店鋪怎么做推廣,做網(wǎng)站用php還是jsp,游戲工作室招聘信息CSerialPort教程4.3.x (3) - CSerialPort在MFC中的使用 環(huán)境: 系統(tǒng):windows 10 64位 編譯器:Visual Studio 2008前言 CSerialPort項(xiàng)目是一個(gè)基于C/C的輕量級(jí)開源跨平臺(tái)串口類庫,可以輕松實(shí)現(xiàn)跨平臺(tái)多操作系統(tǒng)的串口讀寫&#x…

CSerialPort教程4.3.x (3) - CSerialPort在MFC中的使用

環(huán)境:

系統(tǒng):windows 10 64位
編譯器:Visual Studio 2008

前言

CSerialPort項(xiàng)目是一個(gè)基于C/C++的輕量級(jí)開源跨平臺(tái)串口類庫,可以輕松實(shí)現(xiàn)跨平臺(tái)多操作系統(tǒng)的串口讀寫,同時(shí)還支持C#, Java, Python, Node.js等。

CSerialPort項(xiàng)目的開源協(xié)議自 V3.0.0.171216 版本后采用GNU Lesser General Public License v3.0

為了讓開發(fā)者更好的使用CSerialPort進(jìn)行開發(fā),特編寫基于4.3.x版本的CSerialPort教程系列。

CSerialPort項(xiàng)目地址:

  • https://github.com/itas109/CSerialPort
  • https://gitee.com/itas109/CSerialPort

MFC完整示例程序地址:

  • https://github.com/itas109/CSerialPort/tree/master/examples/CommMFC
  • https://gitee.com/itas109/CSerialPort/tree/master/examples/CommMFC

1. 新建基于對(duì)話框的MFC項(xiàng)目

新建一個(gè)基于對(duì)話框的MFC項(xiàng)目,解決方案名稱為CommMFC

在CommMFC解決方案目錄下載CSerialPort源碼

$ cd CommMFC
$ git clone https://github.com/itas109/CSerialPort

目錄結(jié)構(gòu)如下:

D:/CommMFC $ tree
.
+--- CommMFC
|   +--- CommMFC.aps
|   +--- CommMFC.cpp
|   +--- CommMFC.h
|   +--- CommMFC.rc
|   +--- CommMFC.vcproj
|   +--- CommMFCDlg.cpp
|   +--- CommMFCDlg.h
|   +--- ReadMe.txt
|   +--- res
|   |   +--- CommMFC.ico
|   |   +--- CommMFC.rc2
|   +--- Resource.h
|   +--- stdafx.cpp
|   +--- stdafx.h
|   +--- targetver.h
+--- CommMFC.sln
+--- CSerialPort
|   +--- include
|   |   +--- CSerialPort
|   |   |   +--- SerialPort.h
|   |   |   +--- SerialPortInfo.h
|   +--- src
|   |   +--- SerialPort.cpp
|   |   +--- SerialPortBase.cpp
|   |   +--- SerialPortInfo.cpp
|   |   +--- SerialPortInfoBase.cpp
|   |   +--- SerialPortInfoWinBase.cpp
|   |   +--- SerialPortWinBase.cpp

2. 設(shè)置CSerialPort頭文件

右鍵【CommMFC根命名空間】-【屬性】-【C/C++】-【常規(guī)】-【附加包含目錄】-添加CSerialPort的頭文件目錄

D:\CommMFC\CSerialPort\include

$(ProjectDir)\..\CSerialPort\include

3. 添加CSerialPort源文件

右鍵【CommMFC根命名空間】-【添加】-【新建篩選器(命名為CSerialPort)】

右鍵【CSerialPort篩選器】-【添加】-【現(xiàn)有項(xiàng)】-添加CSerialPort的src目錄的所需文件()

所需文件清單如下:

  • SerialPort.cpp
  • SerialPortBase.cpp
  • SerialPortWinBase.cpp
  • SerialPortInfo.cpp
  • SerialPortInfoBase.cpp
  • SerialPortInfoWinBase.cpp

注意:

需要將添加的cpp文件的預(yù)編譯頭設(shè)置為"不使用預(yù)編譯頭",如右鍵【serialport.cpp】-【屬性】-【C/C++】-【預(yù)編譯頭】-【預(yù)編譯頭: 不使用預(yù)編譯頭】

如不設(shè)置會(huì)報(bào)錯(cuò):

serialport.cpp: fatal error C1010: 在查找預(yù)編譯頭時(shí)遇到意外的文件結(jié)尾。是否忘記了向源中添加“#include "stdafx.h"?
SerialPortBase.cpp: fatal error C1010: 在查找預(yù)編譯頭時(shí)遇到意外的文件結(jié)尾。是否忘記了向源中添加“#include "stdafx.h"?
SerialPortWinBase.cpp: fatal error C1010: 在查找預(yù)編譯頭時(shí)遇到意外的文件結(jié)尾。是否忘記了向源中添加“#include "stdafx.h"?
SerialPortInfo.cpp: fatal error C1010: 在查找預(yù)編譯頭時(shí)遇到意外的文件結(jié)尾。是否忘記了向源中添加“#include "stdafx.h"?
SerialPortInfoBase.cpp: fatal error C1010: 在查找預(yù)編譯頭時(shí)遇到意外的文件結(jié)尾。是否忘記了向源中添加“#include "stdafx.h"?
SerialPortInfoWinBase.cpp: fatal error C1010: 在查找預(yù)編譯頭時(shí)遇到意外的文件結(jié)尾。是否忘記了向源中添加“#include "stdafx.h"?

4. 增加CSerialPort的必要依賴庫

windows下CSerialPort必須的依賴庫為setupapi.lib

右鍵【CommMFC根命名空間】-【屬性】-【鏈接器】-【輸入】-【附加依賴項(xiàng)】-添加setupapi.lib

5. 在MFC中添加CSerialPort代碼

5.1 增加CSerialPort的頭文件、繼承類、接收函數(shù)及CSerialPort實(shí)例對(duì)象

CommMFCDlg.h文件中

  • 增加CSerialPort的頭文件
  • CCommMFCDlg類繼承CSerialPortListener
  • 增加接收函數(shù)onReadEvent(const char *portName, unsigned int readBufferLen)
  • 增加CSerialPort的實(shí)例對(duì)象

代碼如下:

// CommMFCDlg.h : 頭文件
//#pragma once// add by itas109
#include "CSerialPort/SerialPort.h"
#include "CSerialPort/SerialPortInfo.h"
using namespace itas109;
// end by itas109// CCommMFCDlg 對(duì)話框
class CCommMFCDlg : public CDialog, public CSerialPortListener // add by itas109
{...// add by itas109
private:void onReadEvent(const char *portName, unsigned int readBufferLen);// end by itas109// add by itas109
private:CSerialPort m_serialPort;// end by itas109
};

注意:
如果CCommMFCDlg不繼承CSerialPortListener,調(diào)用connectReadEvent函數(shù)時(shí)會(huì)報(bào)錯(cuò)

CSerialPort::connectReadEvent: 不能將參數(shù) 1 從CCommMFCDlg *const 轉(zhuǎn)換為itas109::CSerialPortListener *

5.2 增加串口的相關(guān)實(shí)現(xiàn)代碼

CommMFCDlg.cpp文件增加

  • CCommMFCDlg::OnInitDialog()中增加CSerialPort的測(cè)試代碼
  • 增加OnReceive函數(shù)的實(shí)現(xiàn)
// CommMFCDlg.cpp: 實(shí)現(xiàn)文件
...BOOL CCommMFCDlg::OnInitDialog()
{...// TODO: 在此添加額外的初始化代碼// add by itas109m_serialPort.connectReadEvent(this);m_serialPort.init("COM1");m_serialPort.open();if (m_serialPort.isOpen()){m_serialPort.writeData("itas109", 7);}else{MessageBox(_T("open failed"));}// end by itas109...
}// add by itas109
void CCommMFCDlg::onReadEvent(const char *portName, unsigned int readBufferLen)
{if(readBufferLen > 0){char data[1024];int recLen = m_serialPort.readData(data,readBufferLen > 1023 ? 1023 : readBufferLen);if (recLen > 0){data[recLen] = '\0';CString cstr;cstr.Format(_T("OnReceive - data: %s, size: %d"), CString(data), recLen);MessageBox(LPCTSTR(cstr));}}
}
// end by itas109

6. 結(jié)果

代碼中的COM2對(duì)應(yīng)的串口為RS232環(huán)回測(cè)試硬件,因此對(duì)應(yīng)的結(jié)果為程序啟動(dòng)后,初始化并打開串口COM1,發(fā)送數(shù)據(jù)itas09,隨后彈框提示收到數(shù)據(jù)(如OnReceive - data: itas109, size: 7)


License

License under CC BY-NC-ND 4.0: 署名-非商業(yè)使用-禁止演繹


Reference:

  1. https://github.com/itas109/CSerialPort
  2. https://gitee.com/itas109/CSerialPort
  3. https://blog.csdn.net/itas109
http://m.aloenet.com.cn/news/34390.html

相關(guān)文章:

  • wordpress加載慢廣州seo優(yōu)化推廣
  • 做介紹的英文網(wǎng)站網(wǎng)站設(shè)計(jì)公司上海
  • jsp和php哪個(gè)做網(wǎng)站快百度seo是什么意思
  • 做網(wǎng)站需要多少錢西安優(yōu)化大師官網(wǎng)下載
  • 打開ecshop網(wǎng)站提示內(nèi)容溢出網(wǎng)站的推廣平臺(tái)有哪些
  • 廣州疫情防控最新消息淘寶標(biāo)題優(yōu)化網(wǎng)站
  • 廣州app定制公司百度seo收費(fèi)
  • 只做外貿(mào)的公司網(wǎng)站seo推廣公司價(jià)格
  • 公司郵箱價(jià)格免費(fèi)的seo
  • 青島鑫隆建設(shè)集團(tuán)網(wǎng)站網(wǎng)絡(luò)推廣山東
  • 網(wǎng)站建設(shè)難點(diǎn)網(wǎng)站推廣優(yōu)化設(shè)計(jì)方案
  • 蘇州園區(qū)做網(wǎng)站公司seoul是啥意思
  • 貴州安順建設(shè)主管部門網(wǎng)站百度seo網(wǎng)站優(yōu)化
  • 網(wǎng)站建設(shè) 瀏覽器兼容1688的網(wǎng)站特色
  • 營銷型網(wǎng)站建設(shè)一般要多少錢產(chǎn)品網(wǎng)絡(luò)營銷策劃方案
  • 做網(wǎng)站寫需求千萬不要做手游推廣員
  • 誠信通開了網(wǎng)站誰給做精準(zhǔn)的搜索引擎優(yōu)化
  • 網(wǎng)站建設(shè)公司該怎么銷售最新收錄查詢
  • 手機(jī)網(wǎng)站如何做新區(qū)快速seo排名
  • 滄州百度愛采購灰色詞seo推廣
  • 企業(yè)網(wǎng)站排名提升軟件能優(yōu)化谷歌排名推廣公司
  • 如何給網(wǎng)站做seo怎么制作網(wǎng)站?
  • 新鄭做網(wǎng)站佛山網(wǎng)站建設(shè)公司
  • 東莞公司注冊(cè)代理青島網(wǎng)站seo服務(wù)
  • 政務(wù)服務(wù)網(wǎng)站 建設(shè)方案百度競(jìng)價(jià)開戶渠道
  • css做網(wǎng)站常用網(wǎng)站seo優(yōu)化服務(wù)
  • 微信小程序注冊(cè)需要多少錢南昌seo管理
  • 有贊可以做獨(dú)立網(wǎng)站嗎百度關(guān)鍵詞推廣多少錢
  • 電子商務(wù)書店網(wǎng)站設(shè)計(jì)實(shí)驗(yàn)競(jìng)價(jià)排名的服務(wù)模式是
  • 通用網(wǎng)址查詢網(wǎng)站網(wǎng)絡(luò)營銷項(xiàng)目