BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #7742同步于 2010/3/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

[求助]PowerPC+VxWorks做串口通信时遇到的一些问题

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