用spcomm做的串口程序,怎么防止端口阻塞?(50分)

  • 主题发起人 主题发起人 吴事生飞
  • 开始时间 开始时间

吴事生飞

Unregistered / Unconfirmed
GUEST, unregistred user!
多个线程操纵多个串口,用spcomm做,怎么防止端口阻塞?
 
呵呵,我手头一个IC卡的项目刚刚高定,也是串口的,不过,不是用组件的。你可以加互斥或则临界区。
终端还需要给它一定的处理时间,可以SLEEP一下,否则,下位机会处理不过来,甚至发生出错。
根据你的情况,你可以设个变量,如果线程1在处理,则其他线程等待,就不会存在这个情况了。
 
谢谢:thyong你的回答,然后我加强我的问题的描述:我这个程序是一个线程控制一个串口,而且sleep
有用了,发出去没问题,但是在接收的时候来不及,或数据太多的缘故导致阻塞。希望对spcomm
有心得的兄弟来帮忙;
 
你的问题不是对SPCOMM的了解。而是你对串口通信过程不了解。
下位机都有响应时间。发送完后,在响应时间内如果没有读到数据,就认为超时,做超时处理。
在一些对于串口数据读取要求不高的程序中,可以采用sleep。
spcomm的发送没有超时处理,只是确保数据全部发送。另外spcomm已经对发送字节之间延时做了处理
,所以无需sleep.
网上的例程不一定准确。
 
后退
顶部