OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 327|回复: 6

C语言 编程 问题请教

[复制链接]

  离线 

1

主题

4

帖子

0

精华

新手上路

Rank: 1

积分
23
金钱
23
注册时间
2016-11-22
在线时间
6 小时
发表于 2017-7-1 15:36:44 | 显示全部楼层 |阅读模式
1金钱
请教下
SendCmd("AT+IPSTART=\"TCP\",\"58.213.129.178\",50000\r\n","OK", 10)  
这个代码的用途是 发送 AT+IPSTART="TCP","58.213.129.178",50000  
现在我想在程序运行过程中,把数组 IP_change[6] (前4个字节表示IP,后2字节表示端口号),替换到 SendCmd函数中,软件编写是怎样的

最佳答案

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

使用格式字符串 u8 StrBuf[64]; unsigned int tem16; tmp16 = IP_change[4]; tmp16
回复

使用道具 举报

  离线 

14

主题

370

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1875
金钱
1875
注册时间
2013-6-27
在线时间
246 小时
发表于 2017-7-1 15:36:45 | 显示全部楼层
使用格式字符串
u8 StrBuf[64];
unsigned int tem16;
tmp16 = IP_change[4];
tmp16 <<= 8;
tmp16    |=  IP_change[5];
sprintf(StrBuf,"AT+IPSTART=\"TCP\",\"%u.%u.%u.%u\",%u\r\n",IP_change[0],IP_change[1],IP_change[2],IP_change[3],tmp16);

SendCmd(StrBuf,"OK", 10) ;
让我们的思维驾驭在电的速度之上! 承接各种电子产品设计。 659396825
回复

使用道具 举报

  离线 

1

主题

4

帖子

0

精华

新手上路

Rank: 1

积分
23
金钱
23
注册时间
2016-11-22
在线时间
6 小时
 楼主| 发表于 2017-7-1 15:41:21 | 显示全部楼层
@@正点原子
回复

使用道具 举报

  离线 

1

主题

4

帖子

0

精华

新手上路

Rank: 1

积分
23
金钱
23
注册时间
2016-11-22
在线时间
6 小时
 楼主| 发表于 2017-7-1 19:16:42 | 显示全部楼层
@正点原子 请回答下啊
回复

使用道具 举报

  离线 

14

主题

370

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1875
金钱
1875
注册时间
2013-6-27
在线时间
246 小时
发表于 2017-7-1 20:25:23 | 显示全部楼层
看你SendCmd有没解析功能,如果有直接
unsigned int tem16;
tmp16 = IP_change[4];
tmp16 <<= 8;
tmp16    |=  IP_change[5];
SendCmd("AT+IPSTART=\"TCP\",\"%u.%u.%u.%u\",%u\r\n",IP_change[0],IP_change[1],IP_change[2],IP_change[3],tmp16,"OK", 10) ;
让我们的思维驾驭在电的速度之上! 承接各种电子产品设计。 659396825
回复

使用道具 举报

  离线 

1

主题

4

帖子

0

精华

新手上路

Rank: 1

积分
23
金钱
23
注册时间
2016-11-22
在线时间
6 小时
 楼主| 发表于 2017-7-3 09:11:39 | 显示全部楼层
@DongInker
SendCmd的函数是这样的,请问下,怎么编写比较合适
char SendCmd(uint8_t* cmd, int8_t* result, int32_t timeOut)
{
        memset(usart2_rcv_buf, 0, strlen((const char *)usart2_rcv_buf));
        usart2_rcv_len = 0;

        Active_Send(cmd,strlen((const char *)cmd));
  
        while(UART0_Delay < timeOut)
        MyDelay_ms(1);

        if((NULL != strstr((const char *)usart2_rcv_buf, "ERROR")))
        {
          return 0 ;
        }
                       
        if((NULL != strstr((const char *)usart2_rcv_buf, (const char *)result)))
        {
           return 1;
        }
        else
                return 0;
回复

使用道具 举报

  离线 

1

主题

9

帖子

0

精华

新手上路

Rank: 1

积分
12
金钱
12
注册时间
2017-10-17
在线时间
2 小时
发表于 2017-10-17 04:29:16 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2017-11-21 18:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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