|
|
int main()
{
int i,j;
char buffer[512];
if((i=open("/dev/ttyS0",O_RDWR | O_NDELAY))<0)
{
printf("Can not open the /dev/ttyS0");
}
else
{
while(1)
{
j=read(i,buffer,5);
printf("%s",buffer);
}
}
return 0;
}
代码如上,循环读取串口数据,程序运行时,所显示的串口数据倒是正确的,也能及时显示,
但是运行过程中,用户CPU占有率达到了36%,系统高达60%,只剩下不到4%是空闲的。一般的时候
运算量大的程序运行(如用mplayer播放电影),用户占有率也很少高出30%,系统占有率很少高出20%,
肯定是我上面的程序有问题啦,估计问题出在while(1)那里,这个情况怎么解决呢? |
|