数据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);
}
然后设置串口参数:
```cstruct 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函数:
```cN=read(fd, buf, BUF_SIZE);
printf("recv data:%s\n", buf);
上述代码表示要从fd指向的文件中读取BUF_SIZE个字符,并存入buf缓冲区中,排收的字符串最后要以NULL结尾,N指定接收的字节数。
以上关于Linux下数据发送的探究便到此结束,希望大家多多吸收,Linux串口通讯还有其他技术点等待大家去探索。