基于嵌入式Linux下串口应用编程的研究
eraw(new_cfg);
将串口通信的字符大小设为8个字符new_cfg.c_cflag = ~CSIZE;
new_cfg.c_cflag |= CS8;
设置波特率
cfsetispeed(new_cfg,BARDRATE); / / 设
置输入波特率
cfsetospeed(new_cfg,BARDRATE); / / 设
置输出波特率
设置奇偶校验位,不适用奇偶校验
new_cfg.c_cflag = ~PARENB;
new_cfg.c_iflag = ~INPCK;
设置停止位,使用一个byte
new_cfg.c_cflag = ~CSTOPB;
设置读取字符大小以及等待时间
new_cfg.c_cc[VTIME]=50; //两个字符之间
等待超过5s返回
new_cfg.c_cc[VMIN]=1; //最少读取一个
字符
清除串口缓存
该操作是必不可少的,否则会导致串口通信失败。
tcflush(fd,TCIOFLUSH);
其中TCIOFLUSH表示清空串口的缓存。
接下来需要激活配置if((tcsetattr(fd,TCSANOW,new_cfg))!=0)
{
// perror(”tcsetattr“);
return 1;
}
串口初始化、串口属性的设置的流程图,如图1所示。
2.串口的读写和关闭
利用串口通信的过程就是对串口设备的读写过程,只需要利用read()函数和write()函数对打开的串口设备的文件描述符操作即可。
在操作完串口退出程序时,需要将打开的串口关闭,这个过程和关闭普通的文件一样,调用close()函数即可完成。
四、结束语
本文以指纹识别系统的串口编程为例,阐述了Linux系统下,串口编程的具体设置方法,在本文的基础上再添加上层软件的设计即可完成一个指纹识别系统。
- REDIce-Linux--灵活的实时Linux内核(11-12)
- linux文件系统基础(02-09)
- Linux标准趋向统一(11-12)
- linux基础技术(02-09)
- LINUX的目录树(02-09)
- 在Windows下启动Linux(02-09)