1.添加两个文件ComControl.cpp,ComControl.h
2.CTest8view.h里定义串口指针
public:
CComControl* m_Com;
3. 新建三个菜单项
在constructe里面创建com,没有在view的构造函数里创建,因为不起作用
5.发送数据
6.接受数据,在view的windowproc函数里面接收串口消息
http://download.csdn.net/detail/luck_good/3993210
2.CTest8view.h里定义串口指针
public:
CComControl* m_Com;
3. 新建三个菜单项
在constructe里面创建com,没有在view的构造函数里创建,因为不起作用
void CTest8View::Onconstruct()
{
// TODO: Add your command handler code here
m_Com = new CComControl(this->m_hWnd);
}
4.在open里面打开串口
void CTest8View::Onopen()
{
// TODO: Add your command handler code here
m_Com->m_szPortName = "COM7";
m_Com->m_lBaudRate = atol("9600");
m_Com->m_nParity = EVENPARITY;
m_Com->OpenPort();
}
5.发送数据
void CTest8View::Onsend()
{
// TODO: Add your command handler code here
if (!m_Com->PortOpened())
{
AfxMessageBox("通讯串口没有打开!");
return;
}
BYTE yxdata[1024];
BYTE* ucharYxData = yxdata;
yxdata[0]='h';
yxdata[1]='e';
int YxFrameNum=2;
//YxFrameNum= ReadFrame(ucharYxData,yxdata); //请求读
m_Com->Send(ucharYxData, YxFrameNum);
}
6.接受数据,在view的windowproc函数里面接收串口消息
LRESULT CTest8View::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
if(message == WM_COM)
{
if(wParam != COM_THRESHOLD)
{
if(wParam == 5)
{
int m_xx=0;
m_xx++;
}
return 0;
}
CString m_szReceiveView;
bool m_bRvSucced;
BYTE buff[1024];
DWORD dwReaded;
m_bRvSucced = m_Com->Receive(buff, 1024, dwReaded);//接收数据的长度dwReaded
TRACE("dwReaded:%d",dwReaded);
m_Com->SetThreshold(1);
return true;
}
return CView::WindowProc(message, wParam, lParam);
}
http://download.csdn.net/detail/luck_good/3993210