LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 687|回复: 1

串口通讯问题

[复制链接]
发表于 2008-6-17 11:40:36 | 显示全部楼层 |阅读模式
不知道这个问题贴在这里是否合适

程序代码如下(从网上找的)

#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <termios.h>
#define BAUDRATE B115200
#define MODEDEVICE "/dev/ttyS0"

int main()
{
int fd,c=0,res;
struct termios oldtio,newtio;
char buf[256];
printf("start...\n");
fd=open(MODEDEVICE,O_RDWR);
if (fd<0)
{
  perror(MODEDEVICE);
  exit(1);
  }

printf("open...\n");

tcgetattr(fd,&oldtio);
bzero(&newtio,sizeof(newtio));
newtio.c_cflag=BAUDRATE |CS8|CLOCAL|CREAD;
newtio.c_iflag=IGNPAR;
newtio.c_oflag=~OPOST;
newtio.c_lflag &=~(ICANON|ECHO|ECHOE|ISIG);
tcflush(fd,TCIFLUSH);
tcsetattr(fd,TCSANOW,&newtio);
printf("reading...\n");
while(1)
{
   res=read(fd,buf,255);
   buf[res]=0;
   printf("res=%d vuf=%s \n",res,buf);
   sleep(5);
   if (buf[0]=='@') break;
}
  printf("clos...\n");
  close(fd);
  tcsetattr(fd,TCSANOW,&oldtio);
  return 0;


}

在debian下编译通过,可就是接收不到数据,各位看看那里的问题
我的手持机没有问题。
 楼主| 发表于 2008-6-17 14:27:04 | 显示全部楼层
呵呵,不好意思。

问题已经解决,原来用的虚拟机一直是virtual pc,对vmware不是很熟悉,犯了一个低级错误。vmware默认没有串口,需要自己手工增加。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表