1.添加两个文件ComControl.cpp,ComControl.h
2.CTest8view.h里定义串口指针
public:
CComControl* m_Com;
3. 新建三个菜单项

在constructe里面创建com,没有在view的构造函数里创建,因为不起作用
5.发送数据
6.接受数据,在view的windowproc函数里面接收串口消息
http://download.youkuaiyun.com/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.youkuaiyun.com/detail/luck_good/3993210
本文详细介绍了如何在视图中实现串口指针的初始化、配置串口参数、打开串口、发送数据以及接收数据的过程。通过构造函数创建COM控件,实现在打开视图时自动初始化串口,并在发送和接收数据时进行错误处理。

被折叠的 条评论
为什么被折叠?



