数据Linux串口通讯之数据发送探究(linux 串口发送)

Linux串口通讯技术相比Windows操作系统集成度高,可以有效的实现Linux平台下的串口通讯,本文主要探讨Linux下的数据发送,下面将为大家分享一些代码示例,以供参考;

首先获取串口句柄:

“`c

int fd=open(“/dev/ttyS0”,O_RDWR | O_NOCTTY | O_NDELAY);

if(fd

{

printf(“Can’t open serial port\n”);

exit(1);

}


然后设置串口参数:

```c
struct termios TermAttr;
tcggetattr(fd,&TermAttr);
cfsetispeed(&TermAttr,B9600); //波特率
cfsetospeed(&TermAttr,B9600); //波特率
TermAttr.c_iflag&=~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
TermAttr.c_oflag&=~OPOST;
TermAttr.c_lflag&=~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
tcsetattr(fd,TCSANOW,&TermAttr);

数据发送可以以多种方式实现,本文采用write函数:

“`c

N=write(fd, buf, BUF_SIZE);


表示将buf缓冲区中的BUF_SIZE个字符,从fd指向的文件发出;其中write函数的返回值N指示了实际发出的字节数,在发送成功的情况下,N的值与BUF_SIZE的值相等。

在显示接收的数据时,要使用read函数:

```c
N=read(fd, buf, BUF_SIZE);
printf("recv data:%s\n", buf);

上述代码表示要从fd指向的文件中读取BUF_SIZE个字符,并存入buf缓冲区中,排收的字符串最后要以NULL结尾,N指定接收的字节数。

以上关于Linux下数据发送的探究便到此结束,希望大家多多吸收,Linux串口通讯还有其他技术点等待大家去探索。


数据运维技术 » 数据Linux串口通讯之数据发送探究(linux 串口发送)