OpenEdv-开源电子网

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

求助一个函数udp发数问题void udp_demo_senddata(struct udp_pcb *upcb)

[复制链接]

30

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
金钱
427
注册时间
2015-3-11
在线时间
123 小时
发表于 2019-7-22 15:39:54 | 显示全部楼层 |阅读模式
10金钱
原子的f7网络通信例程里有这个发送函数
void udp_demo_senddata(struct udp_pcb *upcb)

这里面是发送的一个字符串const u8 *tcp_demo_sendbuf="Apollo STM32F4/F7 UDP demo send data\r\n";

我现在将其改成
uint8_t tcp_demo_sendbuf1[5] = {0x26,0xBB,0xCC,0xDD,0xEE};
void udp_demo_senddata(struct udp_pcb *upcb)
{
struct pbuf *ptr;
ptr = pbuf_alloc(PBUF_TRANSPORT,strlen((const char*)tcp_demo_sendbuf1),PBUF_POOL);
// ptr=pbuf_alloc(PBUF_TRANSPORT,strlen((char*)tcp_demo_sendbuf),PBUF_POOL);
if(ptr)
{
  ptr->payload=(void*)tcp_demo_sendbuf1;
//  ptr->payload=(void*)tcp_demo_sendbuf;
  udp_send(upcb,ptr);
  pbuf_free(ptr);
}
}
我把const u8 *tcp_demo_sendbuf="Apollo STM32F4/F7 UDP demo send data\r\n";替换成了uint8_t tcp_demo_sendbuf1[5] = {0x26,0xBB,0xCC,0xDD,0xEE};
实验结果是可以发送数据出去 但是这个数组里不能出现0x00,如果0x26,0xBB,0xCC,0xDD,0xEE中任意一个字节为0x00,那么从它开始包括之后的数据全都发不出来,这是为什么啊,除开0x00之外的其它数据都没问题啊 请教各位大佬啊

最佳答案

查看完整内容[请看2#楼]

已解决,将: ptr=pbuf_alloc(PBUF_TRANSPORT,strlen((constchar*)tcp_demo_sendbuf1),PBUF_POOL); 替换为: ptr = pbuf_alloc(PBUF_TRANSPORT,sizeof(tcp_demo_sendbuf1),PBUF_POOL); 就不会已遇到0x00就结束的问题了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

30

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
金钱
427
注册时间
2015-3-11
在线时间
123 小时
 楼主| 发表于 2019-7-22 15:39:55 | 显示全部楼层
已解决,将:
ptr=pbuf_alloc(PBUF_TRANSPORT,strlen((constchar*)tcp_demo_sendbuf1),PBUF_POOL);  
替换为:                               
ptr = pbuf_alloc(PBUF_TRANSPORT,sizeof(tcp_demo_sendbuf1),PBUF_POOL);
就不会已遇到0x00就结束的问题了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2019-7-23 02:31:40 | 显示全部楼层
帮顶
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-15 11:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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