OpenEdv-开源电子网

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

请问怎样把一个u8的数组转换成字符串

[复制链接]

14

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2018-6-15
在线时间
32 小时
发表于 2018-8-10 17:20:54 | 显示全部楼层 |阅读模式
1金钱
我是在用udp的网口通信,在发送数据时,有一个发送的内容:u8 *tcp_demo_sendbuf="Explorer STM32F407 UDP demo send data\r\n";     但是我现在有的是一个u8的数组,我怎样将这个u8的数组转换成可以发送的内容呢?

最佳答案

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

while(buff) { send(buff); }
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

133

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3862
金钱
3862
注册时间
2016-6-11
在线时间
710 小时
发表于 2018-8-10 17:20:55 | 显示全部楼层
while(buff[i]) { send(buff[i++]);  }
回复

使用道具 举报

5

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
171
金钱
171
注册时间
2018-8-1
在线时间
52 小时
发表于 2018-8-10 20:59:58 | 显示全部楼层
sprintf函数
回复

使用道具 举报

14

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2018-6-15
在线时间
32 小时
 楼主| 发表于 2018-8-10 21:50:12 | 显示全部楼层
jxcrgt35 发表于 2018-8-10 20:40
while(buff) { send(buff);  }

不行呀,因为那个发送函数的参数是一个结构体,我只有把我需要发送的整形数组拼成一个字符串,放进那个结构体发送
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2018-8-11 01:51:25 | 显示全部楼层
lyl5530330 发表于 2018-8-10 21:50
不行呀,因为那个发送函数的参数是一个结构体,我只有把我需要发送的整形数组拼成一个字符串,放进那个结 ...

2楼的方法是可以,不行就自己根据自己的代码修改。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

133

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3862
金钱
3862
注册时间
2016-6-11
在线时间
710 小时
发表于 2018-8-11 16:15:50 | 显示全部楼层
本帖最后由 jxcrgt35 于 2018-8-11 16:19 编辑
lyl5530330 发表于 2018-8-10 21:50
不行呀,因为那个发送函数的参数是一个结构体,我只有把我需要发送的整形数组拼成一个字符串,放进那个结 ...

如果数组是定长的,那更简单了for(i=0;i<buff_len;i++){send(buff);}不是定长的,就在数组结尾处人为添加0x00h,按我2楼的方案发送。

回复

使用道具 举报

14

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2018-6-15
在线时间
32 小时
 楼主| 发表于 2018-8-12 15:45:07 | 显示全部楼层
jxcrgt35 发表于 2018-8-11 16:15
如果数组是定长的,那更简单了for(i=0;i

原谅我的愚钝,还是 太懂,是这样的,我需要发送的数据保存到一个数组里,想用网口发送,但是开发板给的库函数的网口发数据的函数是发送的一个结构体,结构体里面有些东西我也不太懂是啥,不过结构体里面有一项就是发送的数据缓存区,就放着下面这个字符串。
库函数里需要发送的数据是一个字符串形式:
//TCP服务器发送数据内容
const u8 *tcp_client_sendbuf="Explorer STM32F407 TCP Client send data\r\n";
我的数组是u8的,我想把这个数据的数据转换成字符串的形式放在这个tcp_client_sendbuf中,就可以调用库函数了。就是这样,新手小白,望大神不要嫌弃。。。。
回复

使用道具 举报

14

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2018-6-15
在线时间
32 小时
 楼主| 发表于 2018-8-12 15:48:40 | 显示全部楼层
jxcrgt35 发表于 2018-8-11 16:15
如果数组是定长的,那更简单了for(i=0;i

这是那个结构体,提到的那个字符串数组就是这个payload
struct pbuf {
  /** next pbuf in singly linked pbuf chain */
  struct pbuf *next;

  /** pointer to the actual data in the buffer */
  void *payload;//指向缓存数组

  /**
   * total length of this buffer and all next buffers in chain
   * belonging to the same packet.
   *
   * For non-queue packet chains this is the invariant:
   * p->tot_len == p->len + (p->next? p->next->tot_len: 0)
   */
  u16_t tot_len;//数据包总的长度(数据包分到了几个buffer中)

  /** length of this buffer */
  u16_t len;//单个buffer的长度

  /** pbuf_type as u8_t instead of enum to save space */
  u8_t /*pbuf_type*/ type;//数据包类型

  /** misc flags */
  u8_t flags;

  /**
   * the reference count always equals the number of pointers
   * that refer to this pbuf. This can be pointers from an application,
   * the stack itself, or pbuf->next pointers from a chain.
   */
  u16_t ref;//引用pbuf的次数
};
回复

使用道具 举报

4

主题

133

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3862
金钱
3862
注册时间
2016-6-11
在线时间
710 小时
发表于 2018-8-12 22:53:15 | 显示全部楼层
本帖最后由 jxcrgt35 于 2018-8-12 23:37 编辑

unsigned char buf [100];

自己编写一个HexToChar函数,将U8数组16进制转换成字符(网上一大把)往缓冲区tcp_client_sendbuf[i++]填充,记得在结尾添加0x00,不知道这样能不能帮到你。
回复

使用道具 举报

14

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2018-6-15
在线时间
32 小时
 楼主| 发表于 2018-8-13 10:39:17 | 显示全部楼层
jxcrgt35 发表于 2018-8-12 22:53
unsigned char buf [100];

自己编写一个HexToChar函数,将U8数组16进制转换成字符(网上一大把)往缓冲 ...

谢谢啦
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2019-9-24
在线时间
2 小时
发表于 2020-7-23 23:24:01 | 显示全部楼层
这个问题怎么解决的,可以说说么?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-30 19:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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