openwrt 亲测可用串口实例

来源:互联网 发布:照片跳舞的软件 编辑:程序博客网 时间:2024/06/06 05:14
#include     <stdio.h>#include     <stdlib.h> #include     <unistd.h>  #include     <sys/types.h>#include     <sys/stat.h>#include     <fcntl.h> #include     <termios.h>#include     <errno.h>#include     <string.h>  int main(){    int fd;    int i;    int len;    int n = 0;          char read_buf[20];    char write_buf[20];    char testbuff[]="Hello1263\r\n";    struct termios opt;     fd = open("/dev/ttyUSB2", O_RDWR | O_NOCTTY);    //默认为阻塞读方式    write(fd,testbuff,10);       tcgetattr(fd, &opt);          cfsetispeed(&opt, B9600);    cfsetospeed(&opt, B9600);    if(tcsetattr(fd, TCSANOW, &opt) != 0 )    {            perror("tcsetattr error");       return -1;    }        opt.c_cflag &= ~CSIZE;      opt.c_cflag |= CS8;       opt.c_cflag &= ~CSTOPB;     opt.c_cflag &= ~PARENB;         opt.c_iflag &= ~INPCK;//opt.c_cflag &= ~INPCK;the last this is fetal set    opt.c_cflag |= (CLOCAL | CREAD);     opt.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);     opt.c_oflag &= ~OPOST;    opt.c_oflag &= ~(ONLCR | OCRNL);    //添加的     opt.c_iflag &= ~(ICRNL | INLCR);    opt.c_iflag &= ~(IXON | IXOFF | IXANY);    //添加的        opt.c_cc[VTIME] = 0;    opt.c_cc[VMIN] = 0;        tcflush(fd, TCIOFLUSH);     printf("configure complete\n");       if(tcsetattr(fd, TCSANOW, &opt) != 0)    {        perror("serial error");        return -1;    }       while(1)    {            n = 0;        len = 0;        bzero(read_buf, sizeof(read_buf));    //类似于memset        bzero(write_buf, sizeof(write_buf));while( (n = read(fd, read_buf, sizeof(read_buf))) > 1 )//>0        {    printf("n= %d \n", n);//            for(i = len; i < (len + n); i++)            {                write_buf[i] = read_buf[i - len];            }            len += n;            }        write_buf[len] = '\0';write_buf[1]=write_buf[0];          n = write(fd, write_buf, len);printf("have sended\n");        sleep(2);    }}

把接收到的字符串第二个字符改成第一个字符,用于验证。串口配置项很重要,需要理解其意。

结构体和函数详细讲解https://wenku.baidu.com/view/33dc137a6bd97f192379e932.html

原创粉丝点击