【原创】嵌入式Linux串口应用编程
0赞串口是计算机一种常用的接口,常用的串口有RS-232-C接口。它是于1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准,它的全称是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。
串口设置主要是设置struct termios结构体的各个成员
#include
struct termios
{
unsigned short c_iflag; /* 输入模式标志 */
unsigned short c_oflag; /* 输出模式标志 */
unsigned short c_cflag; /* 控制模式标志*/
unsigned short c_lflag; /* 本地模式标志 */
unsigned char c_line; /* 线路规程 */
unsigned char c_cc[NCC]; /* 控制特性 */
speed_t c_ispeed; /* 输入速度 */
speed_t c_ospeed; /* 输出速度 */
};
newtio.c_cflag |= CLOCAL | CREAD;
cfmakeraw(&new_cfg);
cfsetispeed(&new_cfg, B115200);
cfsetospeed(&new_cfg, B115200);
new_cfg.c_cflag &= ~CSTOPB; /* 将停止位设置为一个比特 */
new_cfg.c_cflag |= CSTOPB; /* 将停止位设置为两个比特 */
new_cfg.c_cc[VTIME] = 0;
new_cfg.c_cc[VMIN] = 0;
int tcflush(int fd, int queue_selector); /* 用于清空输入/输出缓冲区*/
· TCIFLUSH:对接收到而未被读取的数据进行清空处理。
· TCOFLUSH:对尚未传送成功的输出数据进行清空处理。
· TCIOFLUSH:包括前两种功能,即对尚未处理的输入输出数据进行清空处理。
示例:tcflush(fd, TCIFLUSH);
其中参数termios_p是termios类型的新配置变量。
参数optional_actions可能的取值有以下三种:
· TCSANOW:配置的修改立即生效。
· TCSADRAIN:配置的修改在所有写入fd的输出都传输完毕之后生效。
· TCSAFLUSH:所有已接受但未读入的输入都将在修改生效之前被丢弃。