当前位置:我的异常网» Linux/Unix » 请问虚拟机vmware下串口通信的有关问题
请问虚拟机vmware下串口通信的有关问题
www.myexceptions.net 网友分享于:2013-02-24 浏览:47次
请教虚拟机vmware下串口通信的问题
请教虚拟机vmware下串口通信的问题
我在虚拟机vmware下安了linux,用了串口,
arm写了一个写串口程序,linux下写了一个读串口程序,能成功的运行;
但在linux下写一个写串口程序,arm下写了一个读串口程序,就读不出数据来,怎么回事,是虚拟机有问题吗,只能写不能读?
程序:
//writetest.c
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int spfd;
int main()
{
char fname[16],*sbuf;
int retv,i,ncount=0;
struct termios oldtio;
int realdata=0;
spfd=open( "/dev/ttyS0 ",O_RDWR|O_NOCTTY|O_NONBLOCK);
//spfd=open( "/dev/ttyS0 ",O_RDWR|O_NOCTTY);
if(spfd <0)
{
perror( "open/dev/ttyS0 ");
return -1;
}
tcgetattr(spfd,&oldtio);
cfmakeraw(&oldtio);
cfsetispeed(&oldtio,B57600);
cfsetospeed(&oldtio,B57600);
tcsetattr(spfd,TCSANOW,&oldtio);
printf( "ready for sending data...n ");
fname[0]= '1 ';
fname[1]= '2 ';
fname[2]= '3 ';
fname[3]= ' ';
retv=write(spfd,fname,4);
if(retv==-1)
perror( "write ");
printf( "the number sent is %dn ",retv);
close(spfd);
return 0;
}
//readtest.c
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int spfd;
int main()
{
char hd[4];
int retv,i,ncount=0;
struct termios oldtio;
int realdata=0;
spfd=open( "/dev/ttyS0 ",O_RDWR|O_NOCTTY|O_NONBLOCK);
//spfd=open( "/dev/ttyS0 ",O_RDWR|O_NOCTTY);
if(spfd <0)
{
perror( "open/dev/ttyS0 ");
return -1;
}
printf( "spfd%dn ",spfd);
tcgetattr(spfd,&oldtio);
cfmakeraw(&oldtio);
cfsetispeed(&oldtio,B57600);
cfsetospeed(&oldtio,B57600);
tcsetattr(spfd,TCSANOW,&oldtio);
printf( "ready for receiving data...n ");
retv=read(spfd,hd,4);
/*
if(retv==-1)
{
perror( "read ");
return -1;
}
*/
printf( "%dn ",retv);
printf( "%sn ",hd);
close(spfd);
return 0;
}
arm开发板和主机是通过串口通信,arm发出的数据,主机能读,主机发出的数据,arm就不能读,郁闷!
哪位高手指点指点我,不胜感谢
------解决方案--------------------
我老用vmware串口,没问题啊
你用minicom测试一下吧,看你的程序有没问题。
vmware添加串口的时候,也没啥特别要注意的,在菜单里指定物理串口就可以了
文章评论
最后
以上就是暴躁自行车最近收集整理的关于linux 虚拟机串口通信,请问虚拟机vmware下串口通信的有关问题的全部内容,更多相关linux内容请搜索靠谱客的其他文章。
发表评论 取消回复