这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 串口发数怪现象

共7条 1/1 1 跳转至

串口发数怪现象

菜鸟
2004-11-13 01:02:35     打赏

前提1:此时我的target上vxworks已经跑起来了,各项任务执行正常;

目的:我想用target上的一个串口与我的host通信以满足一些数据传输及对target的控制。

前提2:当然这个串口在bootRom时已经成功向该串口发送过log,而且启动时向该串口发命令(如@等)都能正常启动。——说明该串口没有任何问题。

当前:在vxworks跑起来后,使用该串口发数时,使用siofd = open("/tyCo/0", O_RDWR, 0);然后backbytes = write(siofd, charbuf, strlen(charbuf)),居然发出乱码;

不知何故??请高手指教!!




关键词: 串口     发数     现象    

菜鸟
2004-11-13 21:35:00     打赏
2楼
没有用过select(),我说的是I/O操作的select功能。

菜鸟
2004-11-14 03:54:00     打赏
3楼

有没有用ioctl设置波特率和奇偶校验等io属性?

先试试看吧


菜鸟
2004-11-14 06:08:00     打赏
4楼

估计是因为你的charbuf中存放的不是ASCII码.


菜鸟
2004-11-15 05:27:00     打赏
5楼

我也试过像bootconfig.c中的操作,即先siofd = open();再ioctl();分别进行baud rate和各种特殊位设置;随后还绑定到基本输入输出设备;最后使用printf();像printlogo一样在应用任务中打印,结果还是类似的乱码。

至于版主所说charbuf中不是ASCII码,确有重大嫌疑,不知如何改变这种被动情况?烦请大家指教........

小弟再次谢谢咯.........


菜鸟
2004-11-15 23:29:00     打赏
6楼

在printf中是直接打印要显示的内容的(如字符、数字等),应该不会不是ASCII码吧!!如果不是ASCII码,那么标准库函数就有问题了,何况bootconfig.c中也是这样调用的呀。可还是不行。

另外,我也试过两种方式定义被发送的数据,一种char *charbuf="xxxxxx";然后直接引用charbuf;另一种是char charbuf="xxx";然后传&char,或者char charbuf='x';然后传&char。但结果都一样。5555555555555555~~~~~~

不知道大家是怎么样向串口发数的??能不能提示一下。

[em06] [align=right][color=#000066][此贴子已经被作者于2004-11-15 15:36:49编辑过][/color][/align]

菜鸟
2004-11-17 01:47:00     打赏
7楼

你的主机的波特率是否与设备的波特率相同?


共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]