3749|8

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

USB接收数据 [复制链接]

Read_usb1(0,rcv_data,&Length); //从USB接收数据放入rcv_data,这里的数据正常
for(i=0;i {
      sprintf(temp,"%c",rcv_data); //一执行这条语句就有我下面说的问题
      ascr+=temp;
}
Form1->Richedit_data->Text=ascr;
上面那段简单的代码,在执行过程中rcv_data里的值为什么会莫名其妙的多处一些字符,而且覆盖我前面的数据?

最新回复

我接收的数据假如是“1,2,3...”放在rcv_data里,等我执行完sprintf(..);之后,数组rcv_data中的数据就会多出几个0,变成“0,2,3...”。  详情 回复 发表于 2008-7-30 15:30
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
什么平台?是否是CPU自带USB接口?还是模拟的?多出来的字符是可识别字符吗?
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
USB是CH375片子驱动,MCU是8051,下位机发送的数据PC机已经接收到了,就是上位机程序在字符串处理显示的时候出错,应该不是硬件的问题。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 
“覆盖我前面的数据”,那前面的数据能收到,并且判断是正确的吗?
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

5
 
西安杨工单片机博客

http://c8051fmcu.blog.sohu.com
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

6
 
你的第一个参数是端口号吗?用端口0接受数据?你是不是发送接收都用端口0啊?

看一看你的底层驱动部分,接收新数据的时候有没有清缓冲区?

我估计是因为你对通信过程的控制太低级,没有处理好缓存区造成的。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

7
 
不是,我接受到了数据,rcv_data里面的数据是正确的,只是在处理时会多出几个字符出来。
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 6 楼 gengjia8512 的回复:
不是,我接受到了数据,rcv_data里面的数据是正确的,只是在处理时会多出几个字符出来。

你怎么判断rcv_data里的数据是正确的?处理时多几个字符是每次必然多?还是偶尔的?每次多出来的字符是一样的吗?多出来的个数是一样的吗?多出来的字符所在的位置一样吗?

能给一个出问题的例子吗?就是rcv_data里的数据,还有处理时出问题的数据。
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

9
 
我接收的数据假如是“1,2,3...”放在rcv_data里,等我执行完sprintf(..);之后,数组rcv_data中的数据就会多出几个0,变成“0,2,3...”。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表