温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Component中SIO怎么用

发布时间:2021-12-21 09:42:11 来源:亿速云 阅读:128 作者:小新 栏目:互联网科技

这篇文章主要为大家展示了“Component中SIO怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Component中SIO怎么用”这篇文章吧。

组件INCLUDE_SIO,Serial IO,串口IO

Component中SIO怎么用

包含了它之后,VxWorks就会调用usrSerial.c的usrSerialInit()来加载串口设备

Component中SIO怎么用

通常BSP里都会把N_UART_CHANNELS定义为2,所以VxWorks启动后,就可以看到两个串口了

Component中SIO怎么用

 

如果没有包含组件INCLUDE_PC_CONSOLE,VxWorks还会把第CONSOLE_TTY(0)个串口当作系统的标准IO设备,默认波特率是CONSOLE_BAUD_RATE(9600)。这样的话,printf()的结果就会从串口0输出。不过在X86的设备里,通常还是用pcConsole来做系统的标准IO,printf()的结果也就是从显卡输出了

Component中SIO怎么用

如果Target没有网卡或者没有网卡驱动,在开发过程中,可以通过串口连接WDB,也就是用串口来进行调试。默认用的是WDB_TTY_CHANNEL(1),因此Target最好至少有两个串口。不过串口的传输速率比网卡慢很多,调试起来是很吃力的

Component中SIO怎么用

 

我当前的Target是X86的CPU,VxWorks镜像包含了PC console组件,并使用END连接WDB,因此两个串口都是空闲的。

串口是以字节为单位来传输数据的,接下来看看应用层怎么操作它吧。

用串口线把VxWorks的串口0与Host的串口连接起来,Host端打开一个串口工具,例如我Windows端用的PuTTY,串口的配置一般就是用默认值:波特率9600,数据位8,停止位1,奇偶校验无,流控无

Component中SIO怎么用

因为VxWorks在初始化串口时,一般用的初值也是这样的

Component中SIO怎么用

直接在Shell里试试吧

Component中SIO怎么用

Host的串口工具里就可以收到字符串hello了

Component中SIO怎么用

还是写段代码吧: 这段代码打开串口,读取串口的默认配置,然后发送一段字符

Component中SIO怎么用

执行结果为

Component中SIO怎么用

再跑一个接收的例子

Component中SIO怎么用

从Host端的串口工具里输入一些字符,以'q'结束

Component中SIO怎么用

这个例子很简单,只是把接收到的信息,用printf()打印出来。在具体项目里就要用更复杂的操作来代替printf()了

最后看看串口的ioctl()都支持那些操作,例如可以用SIO_BAUD_SET或FIOBAUDRATE来设置波特率

Component中SIO怎么用

如果想要自己扩展串口的功能,可以在驱动文件的ioctl函数添加分支,编号至少从0x100a开始

这正是:

VX默认俩串口(/tyCo/x),可做系统I与O(no PC Console)。

默认配置最常用(CS8),更多功能见Control(ioctl)。

以上是“Component中SIO怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI