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_SETarg
CLOCAL忽略modem控制信号
CREAD启动接收器
CSIZE指定数据位:CS5~CS8
HUPCL最后关闭时挂断modem连接
STOPB被设置时指定2位停止位,否则1位停止位
PARENB被设置时启用奇偶校验,否则不进行奇偶校验
PARODD被设置时启用奇校验,否则偶校验

4. 开始读写

使用读写函数读写

int read( int fd, char * buffer, size_t maxbytes)int write(int fd, char * buffer, size_t nbytes);
  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值