#include
#include
#include
#include
#include
#include
#include
#include
#define TTY "/dev/ttyUSB0" //usb转串口工具的设备名
#define RATE B9600 //波特率
int main()
{
int fd; //串口文件描述符
int rnum=0; //接收字节数
int wnum=0; //发送字节数
struct termios newopt;
struct termios oldopt;
char send[]="abcde";
char rec[20];
int len=sizeof(send);
int length;
//打开设备文件
fd=open(TTY,O_RDWR|O_NONBLOCK);
if(fd<0)
{
printf("open %s error\n",TTY);
return 1;
}
else
printf("open %s ok!\n",TTY);
tcgetattr(fd,&oldopt); //保存原始串口配置
bzero(&newopt,sizeof(newopt));
cfmakeraw(&newopt); //只是发送接收字符,不进行处理,所以用原始模式
cfsetispeed(&newopt,RATE); //设置输入波特率
cfsetospeed(&newopt,RATE); //设置输出波特率
newopt.c_cc[VTIME]=0;
newopt.c_cc[VMIN]=0;
tcsetattr(fd,TCSANOW,&newopt); //串口的设置即刻生效
//读写设备文件
while(1)
{
write(fd,&len,sizeof(int));
wnum=write(fd,send,len); //向串口发送数据
if(wnum>0)
printf("write success:%d\n",wnum);
else
printf("write fail\n");
sleep(1);
read(fd,&length,sizeof(int));
printf("length=%d\n",length);
rnum=read(fd,rec,length); //通过串口接收数据
if(rnum>0)
printf("read success %d : %s\n",rnum,rec);
else
printf("read fail\n");
sleep(1);
}
return 0;
}
[/code]
相思爱文 于 2013-01-31 23:03:29发表:
试试换一个软换器