OpenEdv-开源电子网

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

C语言 编程 问题请教

[复制链接]

1

主题

5

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2016-11-22
在线时间
13 小时
发表于 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
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 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) ;
让我们的思维驾驭在电的速度之上!
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

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

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

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

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 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) ;
让我们的思维驾驭在电的速度之上!
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2016-11-22
在线时间
13 小时
 楼主| 发表于 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

主题

10

帖子

0

精华

新手入门

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

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 04:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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