OpenEdv-开源电子网

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

老夫出道题给大家?

[复制链接]

49

主题

160

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2017-11-2
在线时间
41 小时
发表于 2017-12-6 17:23:37 | 显示全部楼层 |阅读模式
1金钱
搞GPRS通信,要设定主站IP,及端口号,比如下面IP=111.111.111.111     端口=11111
要发送给GPRS模块的字符串如下
unsigned char         CIPSTART[]={"AT+CIPSTART=\"TCP\",\"111.111.111.111\",11111"};

假如动态设置IP =XXX.XXX.XXX.XXX     端口号=XXXXX

咋能变成上面的字符串格式?
我已搞定,先问问你们,有沙办法?

明天给出我的答案.

最佳答案

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

%d改为用%03d就可以了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

88

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2016-11-1
在线时间
119 小时
发表于 2017-12-6 17:23:38 | 显示全部楼层
LIGONG004 发表于 2017-12-7 08:56
我还有一点搞不定,就是IP都变成三位,咋写

比如实际IP 地址   192 . 168 . 0 . 23

%d改为用%03d就可以了
回复

使用道具 举报

49

主题

160

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2017-11-2
在线时间
41 小时
 楼主| 发表于 2017-12-6 17:26:11 | 显示全部楼层
C语言的字符串处理能力,很不强大,
回复

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2017-12-6 17:34:32 | 显示全部楼层
sprintf(CIPSTART, "AT+CIPSTART=\"TCP\",\"%s\",%d", IP, 端口号);
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
12544
金钱
12544
注册时间
2015-11-5
在线时间
2147 小时
发表于 2017-12-6 17:38:42 | 显示全部楼层
#include <string.h>
sprintf(CIPSTART, "AT+CIPSTART=\"TCP\",\"%d.%d.%d.%d\",%d"", ip1, ip2, ip3, ip4, port);
这种格式化输入比较通用,不需要额外写函数,期待你明天的解法
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2017-12-6 21:09:11 | 显示全部楼层
楼主这活…………。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-12-6 23:50:59 | 显示全部楼层
坐等答案
回复

使用道具 举报

49

主题

160

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2017-11-2
在线时间
41 小时
 楼主| 发表于 2017-12-7 08:51:07 | 显示全部楼层
本帖最后由 LIGONG004 于 2017-12-7 08:52 编辑

                 a=222;
                b=137;
                c=71;
                d=236;
                i=8889;
                sprintf(IP, "AT+CIPSTART=\"TCP\",\"%d.%d.%d.%d\",%d", a,b,c,d,i);

昨天搞了俩小时,还是在一个网友的提示下搞定的,差点搞不定了。
回复

使用道具 举报

49

主题

160

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2017-11-2
在线时间
41 小时
 楼主| 发表于 2017-12-7 08:56:39 | 显示全部楼层
我还有一点搞不定,就是IP都变成三位,咋写

比如实际IP 地址   192 . 168 . 0 . 23
我想给变成 字符串  192 . 168 . 000 . 023     

目前我正查资料, 研究咋做?
回复

使用道具 举报

1

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2017-10-12
在线时间
76 小时
发表于 2017-12-7 09:18:42 | 显示全部楼层
printf("%03d",a);
回复

使用道具 举报

62

主题

903

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3566
金钱
3566
注册时间
2016-1-8
在线时间
544 小时
发表于 2017-12-7 10:11:17 | 显示全部楼层
会用sprintf就行
回复

使用道具 举报

49

主题

160

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2017-11-2
在线时间
41 小时
 楼主| 发表于 2017-12-7 10:11:50 | 显示全部楼层
%d改为用%03d就可以了

不错,终于搞定了

                a=222;
                b=137;
                c=71;
                d=236;
                i=8889;
                sprintf(IP, "AT+CIPSTART=\"TCP\",\"%03d.%03d.%03d.%03d\",%05d", a,b,c,d,i);


我又有一个新的疑问?
假如我的字符串里要带个  %   号咋办?    sprintf涵数把%认为是变量,  咋输出 %,他妈不研究还好,一研究都是问题
回复

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2017-12-7 10:31:10 | 显示全部楼层
LIGONG004 发表于 2017-12-7 10:11
%d改为用%03d就可以了

不错,终于搞定了

%%转义
回复

使用道具 举报

0

主题

88

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2016-11-1
在线时间
119 小时
发表于 2017-12-7 11:48:46 | 显示全部楼层
LIGONG004 发表于 2017-12-7 10:11
%d改为用%03d就可以了

不错,终于搞定了

一次过满足你所有愿望 http://www.cplusplus.com/reference/cstdio/printf/
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
12544
金钱
12544
注册时间
2015-11-5
在线时间
2147 小时
发表于 2017-12-7 13:45:14 | 显示全部楼层
LIGONG004 发表于 2017-12-7 08:51
a=222;
                b=137;
                c=71;

哥,你这做法跟我提到的不就一样么,你自己的解法呢?
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-11 13:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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