串口类的回调函数怎么使用

开发老菜鸟 2013-09-07 12:38:08
我是开发菜鸟,以前干单片机都磕磕绊绊,更别说这回用VC开发个工控板了。

但是一个月也干的差不多了,最后碰上个问题,身边实在没有人可帮忙,只有求助大家了。

任务是这样的,一个有四个串口的工控板,要求每个都发送数据,询问底层设备,收到数据后处理,经过
网口上传给上位机。

目前,我做了,用汪兵那本书中的串口类CESeries,结合例程,初始化了串口,串口在定时器类各自发送数据,并且把收到的数据通过网口上传。

现在要开四个串口,用数组实例化了四个对象,分别对四个串口初始化,分别再各自的定时器里发送数据,
这都没问题了,可是由于对VC的句柄搞不清楚,不能再串口类的回调函数中分清是哪个串口返回的数据,
//////////串口收数据,从串口类中的回调函数
void CSeriesSampleDlg::OnSeriesRead(CWnd* pWnd,BYTE* buf,int bufLen),这个CWnd* pWnd是串口号吗,怎么操作呀,还是应该分别开四个回调函数。再每个串口的回调函数中分别操作。

这该死的工控板,还不具备同步调试功能。实在没辙了。网上能找的都是讲怎么对单个串口进行操作,对多串口操作的就是讲了一下方法,没有具体的例程。

类似的产品太多了,很多人都应该做过,还请进来的高手给个指点,主要就是讲讲用什么样的方法,老菜鸟先谢谢了


...全文
595 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
brightsm 2014-01-01
  • 打赏
  • 举报
回复
void CSeriesSampleDlg::OnSeriesRead(CWnd* pWnd,BYTE* buf,int bufLen),这个CWnd* pWnd是串口号吗, switch (*pWnd) case 1 {串口1数据处理} case 2 {串口2数据处理} case n {串口n数据处理} 就这么简单。
开发老菜鸟 2013-09-08
  • 打赏
  • 举报
回复
刚学vc没几天,这个窗口句柄很困扰我,我还是试着用版主的建议试了一下,现在可以从每个串口的 回调函数得到数据了,只是分别试过,还没多串口同时收数,希望没有问题。 其实,想想也不是很难,想到过,可是对vc实在是基本的都不通,干一点都觉得是困难,好在有版主提到, 让我有点决心,回头再看回调函数是怎么回事,问题还是能解决的。
91program 2013-09-07
  • 打赏
  • 举报
回复
建议 LZ 将你的串口操作类的代码搞四份(有几个串口搞几份),特别是接收线程,这样比较好一些。 否则就一个接收线程,不好区分。
liangxd09 2013-09-07
  • 打赏
  • 举报
回复
CWnd* pWnd是窗口指针,串口是HANDLE,打开的时候不就能分辨了?

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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