QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2692|回复: 4

串口的问题,请大侠指点

[复制链接]
发表于 2006-6-15 14:18:51 | 显示全部楼层 |阅读模式
在linux2。6下写了一个串口发送的程序,第一运行发送没有问题,数据可以发送,提示如下:
open /dev/ttys1: Success
__s3c4510b_stop_rx():00229 called with port = 0x0016d46c.
不知为什么出现第二行的提示,当再一次运行这个程序时,就出现如下问题,不能发送
Unabled to hook interrupt for serial 1 TX
open /dev/ttys1: Success
write: Input/output error
不知原因出在哪里,
 楼主| 发表于 2006-6-15 18:34:32 | 显示全部楼层
uart1 的设备节点号是 c 4 65 吧?谁用过4510板子的串口1,请帮忙
回复

使用道具 举报

发表于 2006-6-17 23:42:35 | 显示全部楼层
你的程序是正常结束了吗??
今天试了一下,不正常阶数的时候就打不开串口了
回复

使用道具 举报

 楼主| 发表于 2006-6-19 10:49:49 | 显示全部楼层
把程序贴上

int retv;
char fname[16],hd[16],*sbuf;
struct termios oldtio,newtio;
fd=open("/dev/ttyS1",O_RDWR|O_NOCTTY);
perror("open /dev/ttys1");
if(fd<0)
        {
        perror("open failed");
        return -1;
        }
tcgetattr(fd,&oldtio);
cfmakeraw(&oldtio);
cfsetispeed(&oldtio,B19200);
cfsetospeed(&oldtio,B19200);
tcsetattr(fd,TCSANOW,&oldtio);

fname[0]='1';
fname[1]='2';
fname[2]='3';
fname[3]='\0';
sbuf=(char *)malloc(4);
strncpy(sbuf,fname,4);
retv=write(fd,sbuf,4);
retv=write(fd,sbuf,4);
if(retv==-1) perror("write");
close(fd);
return 0;
回复

使用道具 举报

发表于 2006-6-20 21:30:26 | 显示全部楼层
retv=write(fd,sbuf,4);
应该是三个字节吧
一般用strlen(sbuf)吧
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-3-28 17:09 , Processed in 0.057368 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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