这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 两个串口同时收发遇到的问题

共1条 1/1 1 跳转至

两个串口同时收发遇到的问题

菜鸟
2005-05-12 17:35:33     打赏

诸位大侠:~~``

STATUS ComRecvTask(void) { struct fd_set readFds; /* bit mask of fds to read from */ int width; /* number of fds on which to pend */ int i; /* index for fd array */ int j;

/* clear bits in read bit mask */ FD_ZERO (&readFds);

for(i=0;i<2;i++) { FD_SET(fds[i], &readFds); } width = fds[0]; for(j=1;j<MAX_FDS;j++) { if(fds[j] > width) { width = fds[j]; } } width++;

while(1) { if (select (width, &readFds, NULL, NULL, NULL) == ERROR) { close(fds[0]); close(fds[1]); return(ERROR); } /* check if this fd has data to read */ for (i = 0; i < MAX_FDS; i++) { if (FD_ISSET (fds[i], &readFds)) { if(i==0) { read(fds[0],RecvBuf1,SendLength); semGive(syncSem1);/*在这里给信号量触发com1发送任务*/ FD_CLR(fds[0],&readFds); } else if(i==1) { read(fds[1],RecvBuf2,SendLength); semGive(syncSem2);/*在这里给信号量触发com2发送任务*/ FD_CLR(fds[1],&readFds); } } } } } 我做的是两个串口同时不停的收发,这里给出的是其中的接收部分。现在我遇到的问题是只能触发一个串口发送任务,而另一个没反应。不知为什么,我的select用的没什么问题吧?请各位高手指点一二 小弟万分感激!!!~~~~~

[em01][em01]



关键词: 两个     串口     同时     收发     遇到     问题    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]