打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VC 的串口通讯
在VC++中有两种方法可以进行串口通讯。一种是利用Microsoft公司提供的ActiveX控件 Microsoft Communications Control;另一种是直接用VC++访问串口。下面将简述这两种方法。
   
    一、Microsoft Communications Control
   
    Microsoft公司在WINDOWS中提供了一个串口通讯控件,用它,我们可以很简单的利用串口进行通讯。在使用它之前,应将控件加在应用程序的对话框上。然后再用ClassWizard 生成相应的对象。现在我们可以使用它了。
   
    该控件有很多自己的属性,你可以通过它的属性窗口来设置,也可以用程序设置。我推荐用程序设置,这样更灵活。
   
    SetCommPort:指定使用的串口。
   
    GetCommPort:得到当前使用的串口。
   
    SetSettings:指定串口的参数。一般设为默认参数"9600,N,8,1".这样方便与其他串口进行通讯。
   
    GetSettings:取得串口参数。
   
    SetPortOpen:打开或关闭串口,当一个程序打开串口时,另外的程序将无法使用该串口。
   
    GetPortOpen:取得串口状态。
   
    GetInBufferCount:输入缓冲区中接受到的字符数。
   
    SetInPutLen:一次读取输入缓冲区的字符数。设置为0时,程序将读取缓冲区的全部字符。
   
    GetInPut:读取输入缓冲区。
   
    GetOutBufferCount:输出缓冲区中待发送的字符数。
   
    SetOutPut:写入输出缓冲区。
   
    一般而言,使用上述函数和属性就可以进行串口通讯了。以下是一个范例。
   
    #define MESSAGELENGTH 100
   
    class CMyDialog : public CDialog
   
    {
   
    protected:
   
    VARIANT InBuffer;
   
    VARIANT OutBuffer;
   
    CMSComm m_Com;
   
    public:
   
    ……
   
    }
   
    BOOL CMyDiaLog::OnInitDialog()
   
    {
   
    CDialog::OnInitDialog();
   
    m_Com.SetCommPort(1);
   
    if (!m_Com.GetPortOpen()) {
   
    m_Com.SetSettings("57600,N,8,1");
   
    m_Com.SetPortOpen(true);
   
    m_Com.SetInBufferCount(0);
   
    SetTimer(1,10,NULL);
   
    InBuffer.bstrVal=new unsigned short[MESSAGELENGTH];
   
    OutBuffer.bstrVal=new unsigned short[MESSAGELENGTH];
   
    OutBuffer.vt=VT_BSTR;
   
    }
   
    return true;
   
    }
   
    void CMyDiaLog::OnTimer(UINT nIDEvent)
   
    {
   
    if (m_Com.GetInBufferCount()>=MESSAGELENGTH) {
   
    InBuffer=m_Com.GetInput();
   
    // handle the InBuffer.
   
    // Fill the OutBuffer.
   
    m_Com.SetOutput(OutBuffer);
   
    }
   
    CDialog::OnTimer(nIDEvent);
   
    }
   
    用该控件传输的数据是UNICODE格式。关于UNICODE和ANSI的关系和转换请参看MSDN.
   
    关于该控件的其他详细资料请查看MSDN关于COMM CONTROL部分
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VC++下用MSComm控件实现串口通讯
.NET 2.0中串口通讯类SerialPort用法整理
.NET 串口通讯 .
一个基于API的VB.net串口通讯类(On a serial communication...
设计串口通讯程序
一个高效,可靠,安全的串口通讯开源方案
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服