求教各位大哥:我这程序怎么捕捉不到发给串口的触发消息啊?

goodgang 2005-05-30 07:41:44
在我的程序的基于CFormView的视图类中,拖入MSComm串口通讯控件,自动生成相关类CMSComm,再在classwisuard中为此控件添加变量:CMSComm m_Com; 然后为此控件添加一消息处理函数:

ImageRecogView.h中:
.....
afx_msg void OnCommMscomm1();
DECLARE_EVENTSINK_MAP()
//}}AFX_MSG
DECLARE_MESSAGE_MAP()

ImageRecogView.cpp中:
BEGIN_EVENTSINK_MAP(CImageRecogView, CFormView)
//{{AFX_EVENTSINK_MAP(CImageRecogView)
ON_EVENT(CImageRecogView, IDC_MSCOMM1, 1 /* OnComm */, OnCommMscomm1, VTS_NONE)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
......

void CImageRecogView::OnCommMscomm1()
{

AfxMessageBox( "A Dumping Test---");
int nEvent;
nEvent=m_Com.GetCommEvent();
switch(nEvent)
{
case 2: //收到>=RThresshold 个字符
AfxMessageBox( "A Dumping Test---");
break;
case 3: //CTS状态线发生变化
AfxMessageBox( "A Dumping Test---");
break;
case 4: //DSR状态线发生变化
AfxMessageBox( "A Dumping Test---");
break;
case 5: //CD状态线发生变化
AfxMessageBox( "A Dumping Test---");
break;
case 6: //Ring Indicator状态线发生变化(引脚9)
AfxMessageBox( "A Dumping Test---");
break;
}
UpdateData(FALSE);
}

我的问题是:
当我用连在计算机串口上的触发器(就是最简单的形式,只给串口的几个引脚送高低电平),为什么相应引脚的状态值改变之后上面的消息处理函数捕捉不到呢?
我的触发器是这样的:内置的公公端接线和引脚4相连(有什么用啊?),外面的四个开关可分别给1、6、8、9引脚传送信号。

希望各位高手不吝赐教,谢谢啦!
...全文
53 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodgang 2005-05-30
  • 打赏
  • 举报
回复
大哥,我这串口不用来传送数据,只是检测相应的触发信号,既当串口监测到触发信号到来时,就可以开始某些设置好的行动。所以串口只作触发用。
具体是这样的:先把触发器连在串口上,打开串口(程序控制)后,串口通过4引脚给触发器各开关的公公端一个高电平,再拨动触发器的4个开关(分别和4个引脚相连),把公公端得高电平传给1、6、8、9引脚,使他们的状态改变,用上面的消息处理函数捕捉这个事件

问题是捕捉不到啊,怎么办?
柯本 2005-05-30
  • 打赏
  • 举报
回复
你的接线有问题吧?
1--DCD
2--RX
3--TX
4--DTR
5--GND
6--DSR
7--RTS
8--CTS
9--RI

2,643

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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