有那位大侠知道如何在qnx用中断方式接收串口数据啊

有那位大侠知道如何在qnx用中断方式接收串口数据啊,最好有例子。多谢多谢

不是由串口驱动吗,为什么还要“用中断方式接受串口数据”?

你是不是要问在程序中如何用中断的方式接收数据?

是的,我是要在程序中以中断方式接收数据,而不是查询方式,如何写程序代码呢。多谢

interruptattach()

串口的驱动本来就是用中断方式来处理数据的.我猜你上产想阻塞在read函数,那么你可以以非阻塞方式打开串口:
fd=open("/dev/ser1",O_RDWR|O_NONBLOCK);
再或者,你可以用类似中断的形式来处理:
//if some data reads,send out a pulse
read(fd…)
MsgSendPulse(…);


//wait for the pulse,just like InterruptWait
MsgReceive(…

如ChenYin的贴子,如果你希望的是“有数据的时候去读数据”,那么有几种方法。

  1. 通常UNIX的做法是用 select(),如果不希望block,可以用带超时的select().
  2. 如果你的程序是比较QNX的程序的话(比如说,是一个QNX资源管理器),那么用ionotify(),让串口驱动在有数据的时候通知你。
  3. 用线程,单开一个线程让它read()在串口驱动上,这样一有数据它就能读到。