【发布时间】:2012-09-01 10:05:30
【问题描述】:
我在Linux下从虚拟串口读取数据(连接的设备是xbee模块)
此时读取是通过检查端口缓冲区的线程完成的。 但是在很多设备的情况下,这并不好,因为一个端口上的数据可能每毫秒出现一次,另一个端口每秒出现一次,因此它成为 CPU 的负担。
我想知道是否有类似中断的东西,只有在新数据可用时才会触发事件(我知道这个原理适用于微控制器)。
如何在 C++ 中实现这一点?
我不知道如何使用这些信息,因为我缺乏相关知识。如果我有这样的事情:
while(1){
int n= PollComport(comport_number, buf, 4095);
if(n>0){
//make somemthing with the new data
}
}
我想删除 while 循环。我在哪里以及如何使用 epoll_wait?
【问题讨论】:
-
如果您可以将
PollComport替换为完全符合您要求的函数,那么该函数究竟会做什么?
标签: usb serial-port virtual-serial-port irq