Linux环境下进行原始串口通信问题(tcflush())
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
Linux环境下进行原始串口通信问题(tcflush())
1: Linux原始串口通信与Linux终端通信不同,
终端通信都是以'\n'换行符作为一次通信的结束符,而原始串口没有这个约定.
2: 需要清除串口发送和接收缓冲区.
(1):打开串口后,最好清除一下接收和发送缓冲区:
tcflush(fd, TCIOFLUSH);
3: 在向对端发送读命令时,一定要在发送前清除一下原来的杂乱数据。
(1):问题代码
write(fd, GET_PARAM, ..); // 向串口发送读命令.
read(fd, buf, ...); //从串口接收队端返回的数据.
因为串口接收缓冲区,可能存在以前的一些杂乱的数据,因此读回来的数据,不一定
都是刚才接收到的。
(2): 正确的代码
tcflush(fd, TCIFLUSH); //先清除接收缓冲区的数据.
write(fd, GET_PARAM, ..); // 向串口发送读命令,这里的读命令,指的是发送此命令后,对端会立即返回相应数据.
read(fd, buf, ...); //从串口接收队端返回的数据.
1: Linux原始串口通信与Linux终端通信不同,
终端通信都是以'\n'换行符作为一次通信的结束符,而原始串口没有这个约定.
2: 需要清除串口发送和接收缓冲区.
(1):打开串口后,最好清除一下接收和发送缓冲区:
tcflush(fd, TCIOFLUSH);
3: 在向对端发送读命令时,一定要在发送前清除一下原来的杂乱数据。
(1):问题代码
write(fd, GET_PARAM, ..); // 向串口发送读命令.
read(fd, buf, ...); //从串口接收队端返回的数据.
因为串口接收缓冲区,可能存在以前的一些杂乱的数据,因此读回来的数据,不一定
都是刚才接收到的。
(2): 正确的代码
tcflush(fd, TCIFLUSH); //先清除接收缓冲区的数据.
write(fd, GET_PARAM, ..); // 向串口发送读命令,这里的读命令,指的是发送此命令后,对端会立即返回相应数据.
read(fd, buf, ...); //从串口接收队端返回的数据.
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献5条内容
所有评论(0)