当前位置: 技术问答>linux和unix
linux串口读取数据的问题,select
来源: 互联网 发布时间:2017-03-21
本文导语: 用select读取数据的话, 每当串口中断发生时,能立即读出来一个字节的数据吗? 还是等到串口缓冲区满了,select才会读出来? select检测的可读性,有点不明白的是,只要一有数据就能检测出来,还是必须达到一定长...
用select读取数据的话,
每当串口中断发生时,能立即读出来一个字节的数据吗?
还是等到串口缓冲区满了,select才会读出来?
select检测的可读性,有点不明白的是,只要一有数据就能检测出来,还是必须达到一定长度才能检测出来?
select一定要在while(1){ ...select();...}这样等待吗?岂不是很浪费CPU时间?
每当串口中断发生时,能立即读出来一个字节的数据吗?
还是等到串口缓冲区满了,select才会读出来?
select检测的可读性,有点不明白的是,只要一有数据就能检测出来,还是必须达到一定长度才能检测出来?
select一定要在while(1){ ...select();...}这样等待吗?岂不是很浪费CPU时间?
|
select会阻塞挂起进程,如果没有数据的话,有数据就循环读不浪费cpu
|
这视对串口的具体设置而定.
你可以通过 man tcsetattr 获取一些Linux串口设置的信息
你可以通过 man tcsetattr 获取一些Linux串口设置的信息
|
怕浪费cpu可以在while中加一些休眠.