VXWORKS串口设置说明:

一般有这么几步:

打开串口

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

设置波特率,数据位,停止位,校验方式

便可以开始读和写

打开串口:

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

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

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

ioctl(fd,FIOSETOPTIONS,OPT_RAW);

ioctl(fd,FIOFLUSH,0);

ioctl(int fd,int function,int arg);这个函数解释如下:

function这个参数有如下:(tty)

FIOBAUDRATE

设置波特率,arg为一整数,表示要设定的波特率

FIOGETOPTIONS

取得设备控制字,arg表示读出的内容存放的位置

FIOSETOPTIONS

设置设备控制字,arg表示要设置的选项

FIOGETNAME

取得文件描述符对应的文件名,arg存放文件名的缓冲区

FIOREAD

取得输入缓冲区内未读取的字符数,arg用于接收结果的整型指针

FIOWRITE

取得输出缓冲区内的字符个数,arg用于接收结果的整型指针

FIOFLUSH

清空输入输出缓冲区的字符

FIOCANCEL

取消读和写

FIOSETOPTIONS对应的arg有 OPT_LINE,OPT_RAW,OPT_ECHO等等

关于这些的定义,可以在sioLib.h,ioLib.h里寻找。

设置波特率,数据位,停止位,校验方式

STOPB:两位停止位,默认是1位停止位。PARENB使能校验,PARODD奇校验,使能后默认是偶校验,未使能则是无校验

CS5,CS6,CS7,CS8:5,6,7,8位数据位

如:CS8|PARENB :8位数据位,1位停止位,偶校验;

CS8|PARENB|PARODD:8位数据位,1位停止位,奇校验;

CS8 :8位数据位,1位停止位,无校验;

CS8|STOPB:8位数据位,2位停止位,无校验;

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:

CLOCAL

忽略modem控制信号

CREAD

启动接收器

CSIZE

指定数据位:CS5~CS8

HUPCL

最后关闭时挂断modem连接

STOPB

被设置时指定2位停止位,否则1位停止位

PARENB

被设置时启用奇偶校验,否则不进行奇偶校验

PARODD

被设置时启用奇校验,否则偶校验

(PARENB被设置时才有效)

可以开始读写

int read

(

int    fd,                /* file descriptor from which to read */

char * buffer,            /* pointer to buffer to receive bytes */

size_t maxbytes           /* max no. of bytes to read into buffer */

)

int write

(

int    fd,                /* file descriptor on which to write */

char * buffer,            /* buffer containing bytes to be written */

size_t nbytes             /* number of bytes to write */

)

关于串口的设置,需要参考tty和xxDrv。详细的还是需要看书的。

下面举个例子:在有些的设置需要如下:

fd=open(tyco,2,0);

logMsg("/n%s;fd=%d/n",tyco,fd,0,0,0,0);

ioctl(fd, FIOOPTIONS, OPT_RAW);

ioctl(fd,FIOBAUDRATE,115200); //设置串口波特率为9600bps

ioctl(fd,FIOFLUSH,0);//清空输入输出缓冲

//ioctl(fd,SIO_HW_OPTS_SET,CS8|PARENB|PARODD|CLOCAL|CREAD); //设置 8 位数据位,1位停止位,带校验位,奇校验,没有流控制CLOCAL,使能读CREAD

//ioctl(fd,SIO_HW_OPTS_SET,CS8|PARENB|CLOCAL|CREAD); //设置 8 位数据位,1位停止位,带校验位,偶校验,没有流控制CLOCAL,使能读CREAD

ioctl(fd,SIO_HW_OPTS_SET,CS8|CLOCAL|CREAD); //设置 8 位数据位,1位停止位,带校验位,无校验,没有流控制CLOCAL,使能读CREAD

write(fd,str,48);//需放在清缓存后,mpc8280不用。和SIO_HW_OPTS_SET之后,因为会reset串口

上面粗字体,需要注意。有些需要,有些不需要的。

vxworks串口的初始化和读写相关推荐

  1. Linux——Linux系统编程之串口编程总结(串口的初始化、读写操作实践)

    目录 0 引言 1 串口编程的流程 1.1 打开串口 1.2 初始化串口 1.2.1 termios结构体 1.2.2 关键函数 1.2.3 初始化串口代码 2 串口的读写测试例程 0 引言 串口大家 ...

  2. C/C++串口通信原理及读写与操作

    http://wangbaiyuan.cn/c-serial-communication-write-reading.html [展开]文章目录 在工业控制中,工控机(一般都基于Windows平台)经 ...

  3. S3C2440 GPS串口配置以及数据读写

    S3C2440 GPS串口配置以及数据读写 参考文章:http://www.cnblogs.com/jason-lu/articles/3173988.html       http://www.cn ...

  4. 串口高频RFID读卡器|读写器T6-AS-00-01读写DESFIRE芯片卡步骤与方法

    串口高频RFID读卡器|读写器T6系列是一款13.56MHZ高频可读可写设备,模块自带CPU控制无需二次编程,通过HID人体学输入方式与计算机通讯无需加载任何驱动程序,一体式板载射频天线性能更稳定,非 ...

  5. HX530系列串口通信高频RFID读写器|读卡器串口调试工具测试读卡操作说明

    本文将重点介绍HX530系列串口通信高频RFID读写器|读卡器串口调试工具测试读卡操作说明. 1.打开SDK 中的Demo,使用串口工具,如下图 2.在串口调试工具设置相关参数 2.1.波特率:960 ...

  6. 硬件系列(九)--------串口扫码头数据读写

    一.前言 最近需求做扫码支付,但是扫码的扫码头是串口的,需要进行开发才能调起扫码头扫码,头疼了一段时间,在度娘上搜索了一波,做了下总结,也写了一个demo,顺便写一篇博文记录一下. 二.串口管理类 * ...

  7. stm32f7linux,STM32F7串口5初始化失败

    用的STM32F767想要初始化串口5,用的PB12(Rx).PB13(Tx),两脚均初始化为复用推免输出.上拉模式初始化后只有PB13上拉了,PB12还是没上拉,什么原因.代码如下 void uar ...

  8. STM32串口2初始化

    在STM32提供的官方库里只有串口一的初始化代码,但当你需要用到两个以上的串口,就得自己写相应的代码,下面是串口2的,其他的串口也差不多. usart2.c#include "sys.h&q ...

  9. Python串口通讯发送指令读写NFC源码 支持windows、linux系统

    本示例使用的读卡器介绍:RS232串口RFID NFC IC卡读写器可二次开发编程发卡器USB转COM-淘宝网 (taobao.com) class Ui_Frame(object):def setu ...

最新文章

  1. 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler” 解决办法...
  2. api怎么写_月薪几十K 的人是怎么设计REST API
  3. 使用java进行婚礼庆祝_#102030:在30天内运行20 10K,庆祝Java 20年
  4. STM8学习笔记---定时器输出7路PWM波
  5. 五个 SQL 查询性能测试题,只有 40% 及格率,你敢来挑战吗?| 原力计划
  6. linux界面如何进行文档排序,Linux中使用sort对文档中的内容进行排序
  7. Linux学习之在线安装mysql
  8. RHEL 6.2 Error: Cannot create GC thread. Out of system resources.
  9. Win11声卡驱动怎么更新?Win11声卡驱动更新方法
  10. 2018引汉济渭计算机监控系统,基于数字水网的引汉济渭受水区水资源调配业务化研究与应用...
  11. 网站受到流量攻击怎么办
  12. 一个好用的串口类(收发自如)
  13. 口令红包-利用函数计算构建微信小程序的server端
  14. 如何利用树莓派制作路由器
  15. mysql情况数据库表数据函数_mysql数据库表单查询和函数的使用
  16. 我带你去哪里 VIII
  17. SANGFOR SCSA——协议基础
  18. Requests库常用方法及参数介绍
  19. Bootstrap系列之巨幕(Jumbotron)
  20. 端口映射工具:ngrok的使用

热门文章

  1. python之torchlight使用_Unity3D加载火炬之光资源
  2. R语言ggplot2画一幅漂亮的哑铃图
  3. 【毕业设计-vue02】
  4. 不要在finally中使用return
  5. 北京邮电大学张勇:量子计算的场景落地还需要很长一段时间
  6. TortoiseSVN设置账号密码
  7. 今日科技联播:阿里倡导成立“罗汉堂” 6名诺贝尔奖得主加入
  8. python职场应用英语作文_职场应用英语
  9. 使用ASP技术进行WAP网站建设|系列教程全集
  10. 2012年下半年8月-12月博客访问量计划