完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
小弟正在学习当中,问题多多!还是先上代码:
[C] 纯文本查看 复制代码 static err_t tcp_server_recv(void *arg, struct tcp_PCB *pcb,struct pbuf *p,err_t err) { char *data; char *data_temp; int a; int *zz; int cd=2; int test[10]={72,79,76,89,32,115,72,105,84,33}; int *point; u16_t lg=20; a=0X39; zz=&a; point=&test[10]; if(p != NULL) { tcp_recved(pcb, p->tot_len); //?????????¤?? tot_len??tcp?????é???¤?? /******????????ù·???*******************/ tcp_write(pcb,point,lg,TCP_WRITE_FLAG_COPY); // payload??TCP?????é?????????? tcp_output(pcb); pbuf_free(p); /* ??·???TCP?? */ } else { tcp_close(pcb); /* ×÷??TCP·????÷?????÷????±??????????? */ } err = ERR_OK; return err; } 注释部分大家可以略过,在调试过程中使用了tcp调试软件,再来说说现象: 源程序里面是通过上位机向网关板STM32发送数据并直接将数据原样返回: [C] 纯文本查看 复制代码 tcp_write(pcb,p->payload,p->totlen,TCP_WRITE_FLAG_COPY); tcp_output(pcb);发送的数据可以原样返回; 例如:发送“stm32”,能返回“stm32”, 先改了这段为: [C] 纯文本查看 复制代码 tcp_write(pcb,point,lg,TCP_WRITE_FLAG_COPY); tcp_output(pcb);我希望是不管我用上位机发送什么指令,总能返回数组对应的值; point是指向我定义的数组,lg为其长度,但是无法正确返回,这里有两个问题: 1、为什么改写程序之前发送的数据能原样返回,改写之后对于单字节数据,例如发送0x30,返回的是ASCII值0?为什么会是ASCII值? 2、改写程序之后发送数组不成功,如果返回数组test[10]={72,79,76,89,32,115,72,105,84,33}的ASCII值也应该是“HOLY SHIT!” 但是若point=&test[10];返回的是0x39的ASCII值9,若point=&test[0],返回的也仅仅是数组中第一个数72对应的SACII值H 若point=&test[1]返回的也仅仅是数组中第二个数79对应的ASCII值O,......... 求大神解惑!感激不尽! |
|
相关推荐
2个回答
|
|
帮顶....
|
|
|
|
楼主居然将***的头像搬过来了,人才
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2550 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2335 浏览 5 评论
3166 浏览 3 评论
2807 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2768 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
622浏览 1评论
863浏览 0评论
981浏览 0评论
633浏览 0评论
458浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 11:36 , Processed in 1.297729 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号