linux认证辅导:linux串口操作函数Linux认证考试

文章作者 100test 发表时间 2009:10:22 22:00:59
来源 100Test.Com百考试题网


  1.打开串口: fd = open("/dev/ttyf1", O_RDWR | O_NOCTTY | O_NDELAY). fcntl(fd, F_SETFL, 0). O_NOCTTY 选项防止程序受键盘控制中止操作键等影响. O_NDELAY 告诉 UNIX 不必另一端端口是否启用.(检测 DCD信号线状态)

  2.往串口发送数据n = write(fd, "ATZ\r", 4).

  3.从串口读取数据当以原始数据模式(raw data mode)打开串口时,read 系统调用将不管串口输入缓存里有多少字符可读都返回.若没有数据,则阻塞直至有字符到来,或定时器超时.串口设置这个选项后,read 调用都是立即返回.没有数据可读时,read 返回 0 fcntl(fd, F_SETFL, FNDELAY).

  解除这个功能是

  fcntl(fd, F_SETFL, 0). 4.关闭串口

  close(fd).

  标准的 POSIX 配置串口参数串口收发数据主要是要做好端口配置工作,需要包含<.termios.h>.,定义终端控制结构以及

  POSIX控制函数

  termios结构

  Table 3 - Termios Structure Members

  Member Description

  c_cflag Control options

  c_lflag Line options

  c_iflag Input options

  c_oflag Output options

  c_cc Control characters

  c_ispeed Input baud (new interface)

  c_ospeed Output baud (new interface)

  struct termios termios_old,termios_new.

  1)获取串口属性

  tcgetattr(fdcom, &.termios_old).

  2)配置输入速率

  cfsetispeed(&.termios_new, baudrate). cfsetospeed(&.termios_new, baudrate). 3) 控制模式,保证程序不会成为端口的占有者termios_new.c_cflag |= CLOCAL.控制模式,使能端口读取输入的数据termios_new.c_cflag |= CREAD. 4) 控制模式,屏蔽字符大小位,设置串口传输数据所用的位数termios_new.c_cflag &.= ~CSIZE. termios_new.c_cflag |= CS5.   //CS6,CS7,CS8

  5)奇偶校验parity check

  //无奇偶校验

  termios_new.c_cflag &.= ~PARENB .

  //偶校验

  termios_new.c_cflag |= PARENB. termios_new.c_cflag &.= PARODD.

  //奇校验

  termios_new.c_cflag |= PARENB. termios_new.c_cflag |= PARODD.

  6)设置停止位

  termios_new.c_cflag |= CSTOPB.   //2stop bits termios_new.c_cflag &.= ~CSTOPB.  //1 stop bits.

  7)其他属性配置

  termios_new.c_oflag &.= ~OPOST.   //输出模式,原始数据输出termios_new.c_cc[VMIN] = 1.   //控制字符,所要读取字符的最小数量termios_new.c_cc[VTIME] = 1.//控制字符,读取第一个字符的等待时间,以 0.1 妙为单

  位

  8)设置新属性

  tcsetattr(fdcom, TCSANOW, &.termios_new).

  // TCSANOW:所由改变立即生效

  //TCSADRAIN:等待所有东西都被发送出去后设置

  //TCSAFLUSH:将输入输出buffer全部溢出后设置

  采用 0select 系统调用读取串口数据跟其他 socket,设备数据


相关文章


如何监视Linux系统资源的使用情况Linux认证考试
LINUX下Mail服务器配置Linux认证考试
Linux环境变量设置总结Linux认证考试
编辑数值金额成中文金额Linux认证考试
linux认证辅导:linux串口操作函数Linux认证考试
给虚拟机添加新的磁盘分区Linux认证考试
使用ghost对linux进行系统备份Linux认证考试
跨平台Linux虚拟服务器配置心得Linux认证考试
linux内存管理之非连续物理地址分配(vmalloc)Linux认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛