嵌入式爱好者

查看: 12652|回复: 0

[Linux] 求助:OK6410串口CTS/RTS的操作问题

[复制链接]

1

主题

1

帖子

3

积分

扫一扫,手机访问本帖
发表于 2015-8-19 11:08:32 | 显示全部楼层 |阅读模式
linux 内核版本: 3.0.1

从原理图可看出OK6410的第一、二个串口提供了CTS/RTS脚位设置。

自己在PC linux上写了一个测试程序,先在PC上确认可以设置RTS与读取CTS后,将程序移植到OK6410上操作串口設/dev/ttySAC1,串口可以正确收发数据,但手动去设置RTS(量测RTS的硬件脚位)或读取CTS(一直读到0 / low)皆无反映。

同上述,以telnet联机,操作串口 /dev/ttySAC0,CTS/RTS的设置/读取也一样无效。

请问是我的CTS/RTS操作有问题,还是串口驱动对CTS/RTS的操作无效?

串口的RTS/CTS操作如下:
// 设置RTS信号为低:
void set_rts_high(int fd)
{
    int status;

    ioctl(fd, TIOCMGET, &status);
    status &= ~TIOCM_RTS;
    ioctl(fd, TIOCMSET, &status);
}

//设置RTS信号为高
void set_rts_low(int fd)
{
    int status;

    ioctl(fd, TIOCMGET, &status);
    status |= TIOCM_RTS;
    ioctl(fd, TIOCMSET, &status);
}

//CTS信号获取;
int get_cts(int fd)
{
    int status;

    ioctl(fd, TIOCMGET, &status);
    if (status & TIOCM_CTS)
        return 1;
     
    return 0;
}
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-12-24 23:45

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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