请问在VC中怎样读串口的信息?

BabyBlue_Wang 2002-03-27 12:45:42
请问在VC中怎样读串口的信息?
我查了MSDN,但没查到。哪位大虾帮帮忙吧。
...全文
137 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
someone 2002-03-27
  • 打赏
  • 举报
回复


  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部分。


Billy_1979 2002-03-27
  • 打赏
  • 举报
回复
若你使用的是mscomm控件,你可以这样来作:先定义一个变量CMSComm m_MSComm1 ;VARIANT buffer1 = m_MSComm1.GetInput() ;这样就把信息读到buffer1中了
AloneWolf 2002-03-27
  • 打赏
  • 举报
回复
CreateFile,ReadFile,WriteFile,_inp,_outp
还可以用mscomm控件

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧