Linux下的串口编程常用接口笔记
开头先记几个资料网站
linux 在线源码查看:
https://elixir.bootlin.com
linux man手册查看:
https://linux.die.net/man/
①确认DTE设备与DCE设备的连线方式
终端一般是作为DTE设备
②串口文件操作
文件基本操作
open
read
write
③串口文件操作
结构体中的参数用来设置波特率、停止位、控制流等基本属性
cfsetspeed(&NewTermios, B115200);
tcsetattr(fd, TCSANOW, &NewTermios);
里面参数可看上面提到网站中的man手册
④串口线状态获取
# define TIOCM_DTR 0x002
# define TIOCM_RTS 0x004
# define TIOCM_ST 0x008
# define TIOCM_SR 0x010
# define TIOCM_CTS 0x020
# define TIOCM_CAR 0x040
# define TIOCM_RNG 0x080
# define TIOCM_DSR 0x100
# define TIOCM_CD TIOCM_CAR
# define TIOCM_RI TIOCM_RNG
以上是linux源码中找到的,使用方式也可利用前面提到的网站去找。
简单使用
int fd,lineState;
ioctl(fd, TIOCMGET, &lineState); //获取所有信号线状态
lineState & TIOCM_CD //判断CD线状态
⑤串口线状态设置
lineState |= TIOCM_RTS;
ioctl(this->fd, TIOCMGET, &lineState); // 设置所有信号线状态