多线程串口通信

liviatt 2008-12-12 03:11:44
使用多个串口,为每个串口开辟一个线程,处理各个串口的数据接收。

具体怎么做呀~

线程同步的方法有四种:事件,信号量,互斥,临界区。
这里应该用那个呢
...全文
130 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zouzhisheng 2011-03-30
  • 打赏
  • 举报
回复
我也要解决相同的问题啊!大家的建议学习了!
ilovedrv 2008-12-12
  • 打赏
  • 举报
回复
直接用cncomm吧,你需要的都已经封装成类了,很好用,我曾经用它控制过二十多个串口

这是源代码

http://blog.csdn.net/wujian53/archive/2007/09/21/1794187.aspx

这是例子

http://dev.yesky.com/29/2310029.shtml
zaodt 2008-12-12
  • 打赏
  • 举报
回复
不要怕,你一定能做出来!

开 MFC Worker Thread

UINT MyControllingFunction( LPVOID pParam );


你先把这个线程函数做好了,注意参数部分;

调用时就简单了,你调用几次就开几个线程,每个线程指定不同的串行口,如下:

public:
CWinThread * m_pThd[4];

...

m_pThd[0] = AfxBeginThread( Func, 1 );
m_pThd[1] = AfxBeginThread( Func, 2 );
m_pThd[2] = AfxBeginThread( Func, 3 );
m_pThd[3] = AfxBeginThread( Func, 4 );


上边例子简单,最后的参数可能要用结构体指针;

等你做出来了,多线程编程也就学会了。
liviatt 2008-12-12
  • 打赏
  • 举报
回复
我对多线程理解的很不深刻,如果不需要同步,那每个线程怎么分配先后呢
shailen126 2008-12-12
  • 打赏
  • 举报
回复
听你描述确实不需要同步,难道你的串口或数据处理之间还有什么别的关系吗
路人乙2019 2008-12-12
  • 打赏
  • 举报
回复
没必要同步的,这个。
一条晚起的虫 2008-12-12
  • 打赏
  • 举报
回复
线程同步的方法有四种:事件,信号量,互斥,临界区。
//没有必要同步吧,每个串口都是单独的事件

15,471

社区成员

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

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