资讯详情

VxWorks串口初始化读写

VxWorks串口初始化读写

VxWorks串口设置一般分为以下几步

  1. 打开串口
  2. 设置串口raw模式,清空输入输出缓冲区
  3. 设置波特率、数据位、停止位、验证方法
  4. 开始读写

1. 打开串口

fd = open("/tyCo/0", O_RDWR, 0) 

“/tyCo/0” 串口1的设备名称,O_RDWR:open for reading and writing

2. 设置串口raw模式,清空输入输出的缓冲区

使用函数’ioctl(int fd, int function, int arg)'这个函数

  1. fd : open打开函数的文件描述符

  2. function 描述
    FIOBAUDRATE 设置波特率,arg为一个整数,表示要设定的波特率
    FIOGETOPTIONS 获取设备控制字,arg内容存储的位置
    FIOSETOPTIONS 设置设备控制字,arg表示要设置的选项
    FIOGETNAME 获取符合相应文件名的文件描述,arg存储文件名的缓冲区
    FIOREAD 输入缓冲区内未读取的字符数,arg整形指针用于接收结果
    FIOWRITE 在输出缓冲区获取字符数,arg整形指针用于接收结果
    FIOFLUSH 清空输入输出缓冲区的字符
    FIOCANCEL 取消读和写
    ioctl(fd, FIOSETOPTIONS, OPT_RAW);  ioctl(fd, FIOFLUSH, 0); 

3. 设置波特率、数据位、停止位、验证方法

使用函数ioctl进行设置

int SerialOps = 0;  ioctl(fd,FIOBAUDRATE,9600); //9600波特率  SerialOps |= CS8;//8数据位,1停止位,无校验  ioctl(fd,SIO_HW_OPTS_SET,SerialOps);//设置 

SIO_HW_OPTS_SET(设置硬件选项)XXDrv里的function。

SIO_HW_OPTS_SET对应的arg:

SIO_HW_OPTS_SET arg
CLOCAL 忽略modem控制信号
CREAD 启动接收器
CSIZE 指定数据位:CS5~CS8
HUPCL 最后,关闭时挂断modem连接
STOPB 设置时指定两个停止位,否则一个停止位
PARENB 被设置时启用奇偶校验,否则不进行奇偶校验
PARODD 设置时启用奇校验,否则偶校验

4. 开始读写

用读写函数读写

int read(int fd, char * buffer, size_t maxbytes);

int write(int fd, char * buffer, size_t nbytes);

标签: tyco连接器176372

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台