返回信息流板子是EP8260的评估板,只有用SMC引出来一个的串口。默认这个串口是标准的输入输出设备,也就是printf()输出是到串口。但是程序中只需要它是一个纯粹的数据传输串口,所以后来用得定向的方式把标准的IO重定向了。
重定向之后对串口的操作就只有read()和write()了,但是在使用时还是会有一些诡异现象:
1、主机与板子通过串口线相连,向板子发数据时必须带一个回车,否则板子接收不到数据。按说串口调试助手点了发送数据就送到板子的串口了啊。
2、板子接收到的数据缺少第一个字符,比如发ABC,那边只有BC。而且这个现象不是总出现,类似的接收程序,有的会这样,有的不会。
以上应该不是程序的问题,求达人指点可能的原因所在。
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #7742同步于 2010/3/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
[求助]PowerPC+VxWorks做串口通信时遇到的一些问题
EthanWT
2010/3/14镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
评估板用起来一般都没问题的,只要按照使用说明一步一步做就行了
特别的,需要注意串口终端软件的设置(数据流控制选项)
如果还不解决你的问题那再讨论
【 在 EthanWT (EthanWT) 的大作中提到: 】
: 板子是EP8260的评估板,只有用SMC引出来一个的串口。默认这个串口是标准的输入输出设备,也就是printf()输出是到串口。但是程序中只需要它是一个纯粹的数据传输串口,所以后来用得定向的方式把标准的IO重定向了。
: 重定向之后对串口的操作就只有read()和write()了,但是在使用时还是会有一些诡异现象:
: 1、主机与板子通过串口线相连,向板子发数据时必须带一个回车,否则板子接收不到数据。按说串口调试助手点了发送数据就送到板子的串口了啊。
: ...................
To 2L:重定向之前也是不行,必须要回车才能确认。我想是因为Monitor Port的原因,所以才想用重定向的方法把它还原成纯粹的串口,没想到还是需要回车板子才有反应。而且这个回车也是接收到的字符,而不是终端调试时的确认那么简单。
To 3L:手册上没有提到怎么把SMC设置成纯粹的串口,感觉这个板子在设计上就把SMC当作调试口,没打算用它作传输口,可是我只需要它是一个普通的串口。
“设计上就把SMC当作调试口”,为什么这么说呢?VxWorks 5.5的默认标准输入输出就是串口,如果重定向前后都有问题,出错的会不会是串口驱动的代码?
【 在 EthanWT 的大作中提到: 】
: To 2L:重定向之前也是不行,必须要回车才能确认。我想是因为Monitor Port的原因,所以才想用重定向的方法把它还原成纯粹的串口,没想到还是需要回车板子才有反应。而且这个回车也是接收到的字符,而不是终端调试时的确认那么简单。
: To 3L:手册上没有提到怎么把SMC设置成纯粹的串口,感觉这个板子在设计上就把SMC当作调试口,没打算用它作传输口,可是我只需要它是一个普通的串口。
【 在 sunxiaosy 的大作中提到: 】
: “设计上就把SMC当作调试口”,为什么这么说呢?VxWorks 5.5的默认标准输入输出就是串口,如果重定向前后都有问题,出错的会不会是串口驱动的代码?
我是指这个评估板在设计上把SMC定位为标准的监视口,没打算把它作为单纯的数据串口,但是我需要的恰恰是后者。
重定向后用起来确实像一个单纯的数据串口,有时挺正常的,但是偶尔出现上述提到的意外情况,而且恢复到正常时的代码也变得不正常了。我想请教一下,我希望通过重定向的方式获得一个单纯的数据串口,这种思路是否可行,有没有什么隐患?