永发信息网

ARM9里的LINUX系统的串口设备节点ttys#用fd open打不开是怎么回事,有没有知道的错误提示

答案:2  悬赏:0  手机版
解决时间 2021-01-24 11:31
#include
#include
#include
#include
#include
#include
#include
#include

#define TRUE 1
#define FALSE 0


int speed_arr[] = { B38400, B19200, B9600, B4800, B2400, B1200, B300,
B38400, B19200, B9600, B4800, B2400, B1200, B300, };
int name_arr[] = {38400, 19200, 9600, 4800, 2400, 1200, 300,
38400, 19200, 9600, 4800, 2400, 1200, 300, };

void set_speed(int fd, int speed)
{
int i;
int status;

struct termios Opt;

tcgetattr(fd, &Opt);
for ( i= 0; i < sizeof(speed_arr) / sizeof(int); i++)
{
if (speed == name_arr[i])
{
tcflush(fd, TCIOFLUSH);
cfsetispeed(&Opt, speed_arr[i]);
cfsetospeed(&Opt, speed_arr[i]);

status = tcsetattr(fd, TCSANOW, &Opt);
if (status != 0)
{
perror("tcsetattr fd1");
exit( 1 ) ;
}
}

tcflush(fd,TCIOFLUSH);
}

}

int set_Parity(int fd,int databits,int stopbits,int parity)
{

struct termios options;
if( tcgetattr( fd,&options) != 0)
{
perror("Setup Serial 1");
return(FALSE);
}
options.c_cflag &= ~CSIZE;

options.c_lflag &=~(ICANON |ECHO|ECHOE|ISIG);
options.c_oflag &=~OPOST;

return (TRUE);
}

int OpenDev(char *Dev)
{
int fd = open( Dev, O_RDWR|O_NOCTTY);
if (-1 == fd)
{
perror("Can't Open Serial Port");
return -1;
}
else
return fd;
}

int main( int argc, char *argv[] )
{
int nLength;
char cmd[50]="abc123\0";
char buff[512] ;

char *dev="/dev/ttyS0";

int fd=OpenDev(dev);

set_speed(fd,115200);

if (set_Parity(fd,8,1,'N')== FALSE) {
printf("set Parity Error\n");
exit(0);
}

while(1)
{
printf("send:%s\n",cmd);
write(fd,cmd,sizeof(cmd));
sleep(1);
}

close(fd);
return TRUE;
}
这个是我写的程序,我在PC机上的linux系统上往ARM板子上发送数据,可以发送数据,但是我把程序烧到ARM板子上,重ARM板子上往PC机上发数据却提示我打不开端口,错误提示是
can't open serial port:input/output error
setup serial:bad file descriptor
set parity Error
有哪位大大帮忙解决下,急!!!!!!
最佳答案
你先TELNET到ARM上,用命令echo hello > /dev/ttyS0,看看串口是否存在啊!
全部回答
在你的s3c2440板子上,你的串口节点驱动,可能不是ttys0,这样的驱动文件,在各个制作系统文件时串口的驱动节点,可能是别的文件名,你仔细的观察下,给你个建议,我的串口驱动节点是s3c2440-serial这个文件,不是ttys0你看一下是不是这个
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
澳洁干洗连锁(昭关店)怎么去啊,我要去那办事
唐朝李氏是不是汉人。
海伊洗衣·生活馆(双仙路店)地址在什么地
中国邮政储蓄银行24小时自助银行(五一路86号
直齿锥齿轮、螺旋锥齿轮、及准双曲面齿轮的齿
江苏大学的材料加工工程怎么样啊?
ucc国际洗衣(润园店)地址在什么地方,我要处
沙中土命
小儿能念儿歌的年龄为()
我其实是比较优秀的,但是我老是在乎自己相貌
农村信用社(中国江西省上饶市鄱阳县田畈街镇)
耀之荣光的象征魔法石多少金币?
我在生菜网上为什么没有找到加息12.18%的理财
【楼梯平面图】楼梯平面图中的折断符号代表什
如何刻录光盘音乐
推荐资讯
中央银行以行政命令或其他方式,从质和量两个
应届生,想知道四川日报报业集团的待遇,我应
公司只剩我一个人,我也不想工作了。公司原来
综合谜语:海中绿州(打一中国地名)的相关
视动力移动验光车的验光设备包含哪些仪器?
超S级是什么意思
昊锐1.4T发动机是不是小马拉大车?
人生沉醉于什么?
(11分)材料一:人的生老病死都是苦,人必须消
怎样使用手机对手机最好
九一年是什么星座
下列各项中,属于会计信息质量要求有()A.货
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?