OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5522|回复: 12

请教各位大侠们:ENC28J60网络通讯实验中,发送数据正常,但是通过uIP返回的数据前面一段是我想要的,可是后面跟了很多的乱码是怎么回事?

[复制链接]

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
发表于 2013-7-2 15:06:15 | 显示全部楼层 |阅读模式
如题,怎么会回来很多的乱码呢!?急求啊!
  if(tcp_client_tsta!=tcp_client_sta)//TCP Client状态改变
  {
       if(tcp_client_sta&(1<<6)) //收到新数据
       {
            strcpy((char*)tcp_client_databuf_temp,(char*)tcp_client_databuf);
            printf("TCP Client RX:%s\r\n",tcp_client_databuf_temp);//打印数据
            tcnt=strcmp((char*)tcp_client_databuf_temp,send_calendar);
            tcp_client_sta&=~(1<<6); //标记数据已经被处理
            if(tcnt==0)
            {
                get_time(calendar_temp);
                sprintf((char*)tcp_client_databuf,(char*)calendar_temp);
                tcp_client_sta|=1<<5;//标记有数据需要发送
            }
        }
        tcp_client_tsta=tcp_client_sta;
}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-2 22:51:08 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
 楼主| 发表于 2013-7-3 09:12:30 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我只是在主程序里面加了个接收数据的判断,另外,在tcp_client_demo.c中我把打印logo的uIP_log这句话注释掉了,换成了点亮LED指示灯,其他的我就没有动了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-3 10:30:38 | 显示全部楼层
回复【3楼】zkevin8879:
---------------------------------
那检查你的数据格式是不是正确了.
发送接收是ASCII的还是HEX的,看你的那现象貌似是hex数据发送到ascii上面了...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
 楼主| 发表于 2013-7-3 10:57:11 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
在网络助手中我没有选择“按16进制发送”,上面个图中发送区“$RTC*” 就是我发的数据,而且上面我发的那截程序下面还有一段是按钮发送的,通过按钮发送上来的数据也是前面一段是我要的RTC时间,后面就一样是乱码了。我怀疑是tcp_client_databuf这个数组在传递到uip_polling(void)中的tapdev_send()函数时出了上面问题,我debug了,发现我从tcp_client_databuf拷贝到tcp_client_databuf_temp中,tcp_client_databuf_temp数组中前面几个成员都还是对的,数组中后面我没有要求的成员就是些不知道从何而来的数据了,唉,有点小头疼啊。我想搞个基于uIP的终端设备状态采集,遇到这个瓶颈了
回复 支持 反对

使用道具 举报

头像被屏蔽

88

主题

231

帖子

2

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2013-4-11
在线时间
40 小时
发表于 2013-7-3 11:20:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
 楼主| 发表于 2013-7-3 11:37:09 | 显示全部楼层
回复【6楼】nonplus:
---------------------------------
谢谢楼上,我来按照你的方法试试,回头跟你们汇报进展
回复 支持 反对

使用道具 举报

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
 楼主| 发表于 2013-7-3 15:12:43 | 显示全部楼层
感谢正点原子哥和nonplus兄弟,我乱码的问题解决了,是因为我在get_time(u8 *time)函数中将原子哥的“timer[16]=0”删除了的原因,而这个为什么要这个“0”的原因,是因为在调用tcp_client_senddata()函数中有个strlen(),这个strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从数组的首地址一直找下去,直到遇到'\0'停止。所以导致了s->textlen数据不定,进而导致前面数据是对的,后面跟了很多的乱码。
在此特别感谢nonplus兄弟的提醒,一语点破梦中人啊!呵呵
回复 支持 反对

使用道具 举报

头像被屏蔽

88

主题

231

帖子

2

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2013-4-11
在线时间
40 小时
发表于 2013-7-3 15:15:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
 楼主| 发表于 2013-7-3 15:49:54 | 显示全部楼层
经验啊  偷学了,哈哈
回复 支持 反对

使用道具 举报

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
 楼主| 发表于 2013-7-3 15:51:01 | 显示全部楼层
回复【9楼】nonplus:
---------------------------------
如果按照你的这个方法那我还得将原子哥的demo程序动动手脚,恩,慢慢来吧,再次感谢啊!
回复 支持 反对

使用道具 举报

头像被屏蔽

88

主题

231

帖子

2

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2013-4-11
在线时间
40 小时
发表于 2013-7-3 16:21:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
 楼主| 发表于 2013-7-3 17:16:58 | 显示全部楼层
回复【12楼】nonplus:
---------------------------------
搜到了 一篇是udp的DEMO,照单全收,学习先。还有一篇是关于memcpy的,谢谢大侠啊!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-18 11:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表