160630项目回顾

来源:互联网 发布:tushare 期货数据 编辑:程序博客网 时间:2024/06/06 14:20

1.linux 环境下与串口通信

(1)open串口节点

   fd = open("/dev/ttySC6", O_RDWR | O_NOCTTY | O_NDELAY);
    if (-1 == fd)
    {
        printf("Can't Open Serial Port\n");
        return -1;
    }
    printf("open success!\n");
    return fd;

(2)获取相关属性,设置串口波特率等相关设置

           struct termios oldtio, newtio;

           tcgetattr(fd, &oldtio);
           setTermios(&newtio, B19200);
           tcflush(fd, TCIFLUSH);
           tcsetattr(fd, TCSANOW, &newtio);


void setTermios(struct termios *pNewtio, unsigned short uBaudRate)
{
    bzero(pNewtio, sizeof(struct termios));
    pNewtio->c_cflag = uBaudRate | CS8 | CREAD | CLOCAL | PARENB; //波特率,奇偶校验等设置
    pNewtio->c_iflag = 0;
    pNewtio->c_oflag = 0;
    pNewtio->c_lflag = 0;
    pNewtio->c_cc[VINTR] = 0;
    pNewtio->c_cc[VQUIT] = 0;
    pNewtio->c_cc[VERASE] = 0;
    pNewtio->c_cc[VKILL] = 0;
    pNewtio->c_cc[VEOF] = 4;
    pNewtio->c_cc[VTIME] = 5;
    pNewtio->c_cc[VMIN] = 0;
    pNewtio->c_cc[VSWTC] = 0;
    pNewtio->c_cc[VSTART] = 0;
    pNewtio->c_cc[VSTOP] = 0;
    pNewtio->c_cc[VSUSP] = 0;
    pNewtio->c_cc[VEOL] = 0;
    pNewtio->c_cc[VREPRINT] = 0;
    pNewtio->c_cc[VDISCARD] = 0;
    pNewtio->c_cc[VWERASE] = 0;
    pNewtio->c_cc[VLNEXT] = 0;
    pNewtio->c_cc[VEOL2] = 0;
}

(3)使用read write 进行数据的读写

write(fd, Send, size);

read(fd, Send, size);

2.I2C 通信

后续添加

0 0