
怎样用vc实现pc机之间的串口通信
1、一般PC电脑本身就自带1个,需要多个的话需要用扩展卡。
2、程序:\\\/\\\/枚举串口\\\/\\\/参数:bEnablePort,哪个串口有效,bEnablePort[0]表示COM1,bEnablePort[n-1]表示COMn\\\/\\\/返回值:有效的串口个数int EnumAllComPort(bool* bEnablePort){ int nCommSum = 0;\\\/\\\/串口个数 HANDLE hCom; CString str; for(int i=1;i<=256;i++) { str.Format(_T(COM%d),i); hCom = CreateFile(str, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); if (hCom == INVALID_HANDLE_VALUE) { bEnablePort[i-1] = false; continue; } else { bEnablePort[i-1] = true; } CloseHandle(hCom); nCommSum++; } return nCommSum;}
VC++实现串口通信
你现在是不是能显示在EDIT内,比如说你获取的串存储在CString strall;strall = 123456789; 共九个字符,前 CString str1;str1 = strall.left(3);中间三位 CString str2;str2 = strall.left(6).right(3);最后三位 CString str3;str3 = strall.right(3);QQ 154504457 只有晚上6.00 到 11.00 在线。
怎样实现基于VC++的串口通讯呢
希望能详细一些。
我试着编过,可是就是实现不了通讯
首先,你要知道有个串口调试工具的小程序,用它确保你的串口正常工作。
其次,Windows对串口的支持最底层操作是API方式,也就是你直接调用windows的API对串口操作,需要设定一大堆参数,波特率,校验等等,这种方式很复杂,对初学者难度很大,不推荐。
所以,你最好选择现成的串口编程组件,有名的有ActiveX空间MSCOM,也可以采用现成的串口编程类,以及别人的示例,看看这个文章不错。
vc++ 串口通讯
\\\/\\\/很有可能是OnCtlColor中的程序有误 由于你没有把整段程序发出来, 我只能发一段程序你参考\\\/\\\/控制控件字体及背景的颜色 黑底 红字HBRUSH CKJScrDispDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); \\\/\\\/ TODO: Change any attributes of the DC here COLORREF clr = RGB(0,0,0); static HBRUSH m_brMine = ::CreateSolidBrush(clr); if(nCtlColor == CTLCOLOR_EDIT) \\\/\\\/edit 控件 { pDC ->SetBkColor(clr); pDC ->SetTextColor(RGB(255,255,0)); return m_brMine; } if (nCtlColor == CTLCOLOR_STATIC) \\\/\\\/staic 控件 { pDC ->SetBkColor(clr); pDC ->SetTextColor(RGB(255,0,0)); return m_brMine; } CFont *OldFont=GetFont(); pDC->SelectObject(OldFont); pDC->SetBkColor(GetSysColor(COLOR_WINDOWTEXT));\\\/\\\/COLOR_BTNFACE pDC->SetTextColor(GetSysColor(CTLCOLOR_EDIT));\\\/\\\/COLOR_BTNFACE \\\/\\\/OldFont->DeleteObject(); \\\/\\\/ return m_brMine; \\\/\\\/作为约定,返回背景色对应的刷子句柄 \\\/\\\/ TODO: Return a different brush if the default is not desired \\\/\\\/return hbr;}
vc串口通讯方法
123456789是缓冲区内的数据。
memcpy(d, s, 3);memcpy(d, s+3, 3);memcpy(d, s+6, 3)1次取3个字节,memcpy第1个参数目的地址,移动s指针的首地址,即可。
具体请查看memcpy函数用法。
有机会一起讨论,计算机编程群:568187
vc++ 串口通讯
推荐 龚建伟 的 入门书籍Visual C++_Turbo C串口通信编程实践有 pdf 电子文档找不到 可以 联系
求VC++串口读写代码
VC串口通信最简单的方法就是直接用MSComm控件(当然你也可以不用直接用代码),这个需要添加一下,详细用法不方便贴这里,我的空间有保留(俊忆陈年 ),不过看描述你对VC一窍不通,因此可以的话我建议你还是用VB做比较好,VC出了错不像VB那么容易搞定,如果有需要我有做过的项目可以给你参考(有些复杂).另外无限模块是什么模块
如果是GSM的需要了解GSM的AT指令(其实也不难)和向他要通信协议才好解析。



