VC2005使用MSCOMM编写串口通讯程序

近来又要做个串口通信的程序,由于以前没有做过,所以不知道怎么写,网上搜了一圈,全是在VC6.0下写的,于是找葫芦画瓢,好不容易总算成功了,只是我这里用的是VC2005,但是VC2005中是没有MSCOMM的,所以我们需要借助VC6.0的MSCOMM控件;

首先去网上下载MSCOMM32.OCX,MSCOMM32.DEP,MSCOMM.SRG三个文档,然后把它拷贝到c:\windows\system32目录下面;

然后注册控件:在命令行里面敲 regsvr32   c:\windows\system32\mscomm32.ocx 回车。

我们还需要到注册表中增加键值,否则你使用mscomm控件的时候会提示没有经过授权的错误。

编辑1.reg文档,内容如下:

REGEDIT
HKEY_CLASSES_ROOT\Licenses = Licensing: Copying the keys may be a violation of established copyrights.
 
// The MsComm32 Control License follows:
HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905 = kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun

保存后,双击1.reg。这样就可以使用了。

如果实在不行,请手动到注册表HKEY_CLASSES_ROOT\Licenses里添加4250E830-6AC2-11cf-8ADB-00AA00C00905项目,设定其值为kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun。

下面就可以开始使用MSCOMM控件编写串口处理程序了。

 

1在对话框上右键,选择插入ActiveX控件,选择Mcriosoft Commmunications Control,V6.0,

2 在控件上右键,选择添加控件变量,这时就会多出mscomm.h和cpp的源文件

3然后的任务就是使用m_MSComm实例使用串口,你可以新建一个按钮,然后在其双击事件中加入初始化串口的代码如下:

view plaincopy to clipboardprint?
m_MSComm.Create(NULL,0,CRect(0,0,0,0),this,IDC_MSCOMM1);  
    if(m_MSComm.get_PortOpen())//如果串口已经打开,先关闭它  
    {  
        m_MSComm.put_PortOpen(FALSE);  
    }  
    m_MSComm.put__CommPort(1);//设定使用串口1  
    m_MSComm.put_InBufferSize(1024);//设定串口发送数据缓冲区大小  
    m_MSComm.put_OutBufferSize(1024);//设定串口接收数据缓冲区大小  
    m_MSComm.put_InputLen(0);//设置当前接收区数据为0表示全部读取  
    m_MSComm.put_InputMode(1);//以二进制方式读取数据  
    m_MSComm.put_RThreshold(1);//当接收缓冲区有1个或以上数据时读取  
    m_MSComm.put_Settings(_T("9600,n,8,1"));//设定波特率9600无检验位,8个数据位,1个停止位  
 
    if (!m_MSComm.get_PortOpen())//如果串口是关闭的,打开串口  
    {  
        m_MSComm.put_PortOpen(TRUE);  
    }  
    else//如法打开则提示错误  
    {  
        AfxMessageBox(_T("Open Serial Port failue!"),MB_OK,0);  
    }  
    m_MSComm.get_Input();  
    Sleep(3000);  
    COleVariant V1(L"OK,YOU CAN SEND DATA TO COMM1!");//这里定义你要发送到字符  
    m_MSComm.put_Output(V1.Detach());//发送数据  
    Sleep(3000);  
    MessageBox(TEXT("ok,the port will close!"),MB_OK,0);  
    m_MSComm.put_PortOpen(FALSE);//先预读取缓冲区,清空缓冲区数据  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值