
求C++ C语言大神帮忙弄一个串口通信的代码
这是我以前写的一个串口通讯文件,全部贴出来了,希望对你有帮助,包括设置,发送,接受数据,你可以好好看看,祝你成功\\\/\\\/ 串口Dlg.cpp : 实现文件\\\/\\\/#include stdafx.h#include 串口.h#include 串口Dlg.h#include afxdialogex.h#ifdef _DEBUG#define new DEBUG_NEW#endif\\\/\\\/ 用于应用程序“关于”菜单项的 CAboutDlg 对话框class CAboutDlg : public CDialogEx{public: CAboutDlg();\\\/\\\/ 对话框数据 enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); \\\/\\\/ DDX\\\/DDV 支持\\\/\\\/ 实现protected: DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD){}void CAboutDlg::DoDataExchange(CDataExchange* pDX){ CDialogEx::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)END_MESSAGE_MAP()\\\/\\\/ C串口Dlg 对话框C串口Dlg::C串口Dlg(CWnd* pParent \\\/*=NULL*\\\/) : CDialogEx(C串口Dlg::IDD, pParent) , m_Selection(0) , m_recv(_T()) , m_send(_T()){ m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}void C串口Dlg::DoDataExchange(CDataExchange* pDX){ CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_MSCOMM1, m_CMscomm); DDX_Control(pDX, IDC_COMBO2, m_CComboBox); DDX_Text(pDX, IDC_RECV, m_recv); DDX_Text(pDX, IDC_SEND, m_send);}BEGIN_MESSAGE_MAP(C串口Dlg, CDialogEx) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON1, &C串口Dlg::OnBnClickedButton1) ON_CBN_SELCHANGE(IDC_COMBO2, &C串口Dlg::OnSelchangeCombo2) ON_WM_LBUTTONDBLCLK() ON_BN_CLICKED(IDC_BUTTON2, &C串口Dlg::OnBnClickedButton2) ON_WM_DRAWITEM()END_MESSAGE_MAP()\\\/\\\/ C串口Dlg 消息处理程序BOOL C串口Dlg::OnInitDialog(){ CDialogEx::OnInitDialog(); \\\/\\\/ 将“关于...”菜单项添加到系统菜单中。
\\\/\\\/ IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } \\\/\\\/ 设置此对话框的图标。
当应用程序主窗口不是对话框时,框架将自动 \\\/\\\/ 执行此操作 SetIcon(m_hIcon, TRUE); \\\/\\\/ 设置大图标 SetIcon(m_hIcon, FALSE); \\\/\\\/ 设置小图标 \\\/\\\/ TODO: 在此添加额外的初始化代码 m_CMscomm.put_CommPort(2); if(m_CMscomm.get_PortOpen()) m_CMscomm.put_PortOpen(0);\\\/\\\/解除占用 m_CMscomm.put_PortOpen(1);\\\/\\\/打开串口 static CString str(9600,n,8,1); m_CMscomm.get_Input(); m_CMscomm.put_RThreshold(1); m_CMscomm.put_Settings(str); static char ch[10]; CString str1(com); for(int i=1;i<10;i++) { itoa(i,ch,10); m_CComboBox.AddString(str1+ch); } m_CComboBox.SetCurSel(0); return TRUE; \\\/\\\/ 除非将焦点设置到控件,否则返回 TRUE}void C串口Dlg::OnSysCommand(UINT nID, LPARAM lParam){ if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialogEx::OnSysCommand(nID, lParam); }}\\\/\\\/ 如果向对话框添加最小化按钮,则需要下面的代码\\\/\\\/ 来绘制该图标。
对于使用文档\\\/视图模型的 MFC 应用程序,\\\/\\\/ 这将由框架自动完成。
void C串口Dlg::OnPaint(){ if (IsIconic()) { CPaintDC dc(this); \\\/\\\/ 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast
HCURSOR C串口Dlg::OnQueryDragIcon(){ return static_cast 或许 你的 系统里根本就没有 这个 串口控件是 ocx 文件C:\\\\Windows\\\\System32\\\\Mscomm32.ocx 看你驱动程序的接口啊一般是是open(“串口名”)得到一个int小整数,作为接口函数的参数,表示这个串口然后read(),write()操作结束后不要忘记close()下面的实现就是驱动的实现了一般结合硬件也要自己去实现的 分接收端和发送端。 接收端:1·打开com1端口 fd=fopen(\\\/dev\\\/ttys0,方式);2·取得当前串口值,保存到结构体变量oldtio tcgetattr(fd,&oldtio);3·串口结构体变量newtio清0.bzero(&newtio,sizeof(newtio))4·设置串口参数 主要设置比特率、是否忽略奇偶校验错误,启用正规模式等等。 接收端1·打开com端口2·取得当前串口值3·串口结构体变量清04·设置串口参数。 跟普通文件的操作或数据库的操作一样的。 如果串口数据并非都是文本内容,那么存储时应该用二进制方式。VC添加串口控件是为什么提示没有注册类,我按着注册步骤做了啊
C语言串口问题
串口怎么与I2C连接?
C ++串口通信



