COM串口有什么仪器测试
看不清楚图片。
你可以先检查下波特率是否设置正确,串口有没有被占用等原因,如果确保调用都是正确的,那我再告诉你一个小秘密:mscomm控件有个bug,不能打开com 16以上的串口哦,所以如果串口号比较大也是打不开的追问 : 波特率和其他的一些参数没有错误啊,串口也都用串口调试助手试了,也都可以正常打开。
当时打开的串口主要是COM1(自带)、COM3(PPI电缆装驱动后生成)和COM5(虚拟),都提示打不开。
不知道是不是程序还有问题,请高手指点!!!主程序附录如下:// CMSCTestDlg.cpp : 实现文件//#include "stdafx.h"#include "CMSCTest.h"#include "CMSCTestDlg.h"#include "afxdialogex.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// 用于应用程序“关于”菜单项的 CAboutDlg 对话框class CAboutDlg : public CDialogEx{public: CAboutDlg();// 对话框数据#ifdef AFX_DESIGN_TIME enum { IDD = IDD_ABOUTBOX };#endif protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持// 实现protected: DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX){}void CAboutDlg::DoDataExchange(CDataExchange* pDX){ CDialogEx::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)END_MESSAGE_MAP()// CCMSCTestDlg 对话框CCMSCTestDlg::CCMSCTestDlg(CWnd* pParent /*=NULL*/) : CDialogEx(IDD_CMSCTEST_DIALOG, pParent) , m_strRecvData(_T("")) , m_strSendData(_T("")){ m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}void CCMSCTestDlg::DoDataExchange(CDataExchange* pDX){ CDialogEx::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_RECV, m_strRecvData); DDX_Text(pDX, IDC_EDIT_SEND, m_strSendData); DDX_Control(pDX, IDC_MSCOMM1, m_Comm);}BEGIN_MESSAGE_MAP(CCMSCTestDlg, CDialogEx) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON_SEND, &CCMSCTestDlg::OnButtonSend)END_MESSAGE_MAP()// CCMSCTestDlg 消息处理程序BOOL CCMSCTestDlg::OnInitDialog(){ CDialogEx::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框的图标。
当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 //串口初始化代码 if (m_Comm.get_PortOpen()) m_Comm.put_PortOpen(FALSE); m_Comm.put_CommPort(1);//选择COM1端口 m_Comm.put_InputMode(1);//输入方式为二进制方式 m_Comm.put_InBufferSize(1024);//设置输入缓冲区 m_Comm.put_OutBufferSize(512);//设置输出缓冲区 m_Comm.put_Settings(TEXT("9600,n,8,1"));//波特率9600,无校验,8个数据位,1个停止位 if (!m_Comm.get_PortOpen()) { m_Comm.put_PortOpen(TRUE);//打开串口 m_Comm.put_RThreshold(1);//每当接收缓冲区有1个字符则接收串口数据 m_Comm.put_InputLen(0);//设置当前缓冲区长度为0 m_Comm.get_Input();//预读缓冲区以清除残留数据 } else AfxMessageBox(TEXT("打开端口失败!"), MB_ICONSTOP, 0); AfxMessageBox(_T("打开端口失败!"), MB_ICONSTOP, 0); return TRUE; // 除非将焦点设置到控件,否则返回 TRUE}void CCMSCTestDlg::OnSysCommand(UINT nID, LPARAM lParam){ if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialogEx::OnSysCommand(nID, lParam); }}// 如果向对话框添加最小化按钮,则需要下面的代码// 来绘制该图标。
对于使用文档/视图模型的 MFC 应用程序,// 这将由框架自动完成。
void CCMSCTestDlg::OnPaint(){ if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0); // 使图标在工作区矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon 1) / 2; int y = (rect.Height() - cyIcon 1) / 2; // 绘制图标 dc.DrawIcon(x, y, m_hIcon); } else { CDialogEx::OnPaint(); }}//当用户拖动最小化窗口时系统调用此函数取得光标//显示。
HCURSOR CCMSCTestDlg::OnQueryDragIcon(){ return static_cast(m_hIcon);}BEGIN_EVENTSINK_MAP(CCMSCTestDlg, CDialogEx) ON_EVENT(CCMSCTestDlg, IDC_MSCOMM1, 1, CCMSCTestDlg::Oncomm, VTS_NONE)END_EVENTSINK_MAP()void CCMSCTestDlg::Oncomm()...
怎么测试 一个串口(单片机)跟计算机能正常通信
展开全部 如果没有硬件一起测试,可以在本机进行测试。
需要用到两个软件。
一个是虚拟串口软件(Virtual Serial Port Driver)用于创建虚拟串口,一个是串口调试助手,用于和你的程序通讯,并显示通讯内容。
百度上很容易就可以下载到。
用虚拟串口软件创建虚拟串口。
虚拟串口都是成对设置的。
假设,你设置了Com5,Com6这一对虚拟串口。
你的程序连接Com5,串口助手连接Com6,这样你程序就可以通过Com5向Com6发送数据了。
从而达到测试的目的。
串口通信误码率高,什么原因,如何解决
原因很多,最常见的是:干扰、接地不好或不对、以及双方定时不一致(例如晶振不准)等等。
你可以从以下几方面试一试:1、减小波特率2、用屏蔽线传输信号(屏蔽层不要当地线用,要单点接地)3、改用485/4224、检查地线连接,不要形成大的环路,强弱电分开等等
如何利用串口调试助手测试rc522
需要根据rc522具体和串口通信的数据协议,然后根据协议格式编写测试。
协议测试类串口软件,如格西烽火串口助手等软件,测试协议比较方便。
实现串口通信分析用什么软件
首先要了解通信协议;其次检查通信线路;再有就是备用两个以上测试软件,相互印证,流行的如格西烽火串口助手、SSCOM等,都比较可靠。
光纤通信系统误码率的测试有哪些方案
既然是 调试VB串口通信,最好有 真实的串口通信环境:1、机器有串口嘛?一般台式机有一个。
如果没有可以用 USB转串口;2、通信嘛必须有 2 个 方面,一个发,一个收,可以是 2台机器,也可以是一台机器的2个串口;3、软件嘛,自己编程的这个算一方,另外一方可以用网络上下载的工具,如串口调试工具、串口助手 等等,当然,一段时间熟悉了以后,收、发都可以用自己的软件,那你就是高手了!当然,也可以用纯软件的方法来 调试,这样的话就无需任何硬件,当然一台电脑还是需要的!祝你顺利,也欢迎交流!
转载请注明出处51数据库 » 串口通信测试误码率测试软件