在我的程序的基于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引脚传送信号。希望各位高手不吝赐教,谢谢啦!
.....
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引脚传送信号。希望各位高手不吝赐教,谢谢啦!
解决方案 »
- * 看win2000代码后: windows有一个成员变量未公开, 有什么办法可以获取到这个变量?
- 如何在主框架窗口有需要时同时弹出两个对话框?
- VC中MFC Class Wizard的错误
- 文本提取的问题,请各位达人指教。
- 怎样使用对话框资源?
- 如何通过pid vid 指定系统默认的声卡。
- 求教一条SQL查询语句的写法,谢谢!
- 关于CBitmap
- 请问一下,软件开发分前台和后台的行吗?
- 请问,现在有这样一条语句server.sin_port = htons(7016);怎样通过server.sin_port取得7016这个值?
- 怎样在RichEdit中点击Enter键不换行
- 在线等,请教各位用DBGrid控件能不能不要建立系统DSN?
(见你的另一贴)
如果是25针:
2--TX
3--RX
4--RTS
5--CTS
6--DSR
7--GND
8--DCD
20--DTR
21--RI
0--- >=+3V
1-- <=-3V
你接地肯定是没用的
你应该用外部电源,当然,用232的输出也可以,如RTS,它为输出,它是有源的
有没有方便的外部电源可用啊?
m_Com.RTSEnable(TRUE);
这样RTS线上就有约-12V电压.
将1,6,8,9以4为公用端.这样,当它们与4连通时,就会有1的信号(-12V)
反之,m_Com.RTSEnable(FALSE);就会有0的信号