收藏官网首页
查看: 13566|回复: 8

MCU发给Wifi的指令,不接收回应?

6

主题

21

帖子

98

积分

注册会员

Rank: 2

积分
98
跳转到指定楼层
楼主
发表于 2015-4-16 10:38:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发

今天心急先试了一下生成分协议看了下。看到里面有这个:

第一反应MCU这边是直接for循环3次,发等发等发等,其中有一次收到了就退出循环。
但又看到协议里面有指令SN序列码什么的,我觉得MCU应该有缓冲队列来实现,所以就想看看官网有什么巧妙方法实现。
然后刚才下载了官网几个开源工程,在MCU发送的时候都没有检测回应?直接丢了数据给wifi就不管了?....官网都不用这个方式....那...还要这条约定干嘛呢.....晕

6

主题

21

帖子

98

积分

注册会员

Rank: 2

积分
98
沙发
 楼主| 发表于 2015-4-16 11:07:23 | 只看该作者
好吧,我错了,刚发完,就看到了...

51

主题

99

帖子

827

积分

高级会员

Rank: 4

积分
827
板凳
发表于 2015-4-16 11:23:21 | 只看该作者
你好,
        请看宠物屋mcu的例子(https://github.com/gizwits/gokit-mcu),这个函数:SendToUart
        就是你提到的”MCU这边是直接for循环3次,发等发等发等,其中有一次收到了就退出循环。”
        这个函数是有检测MCU发送之后wifi模组过来的回应的,如:
        memcpy(&recv_commonCmd, uart_buf, sizeof(pro_commonCmd)); //把wifi模组过来的数据放到缓存:recv_commonCmd

        //只有当sn和ACK(recv_commonCmd.head_part.cmd )均配对时,才表明发送成功;
                                if((send_headPart.cmd == CMD_SEND_MODULE_P0 && recv_commonCmd.head_part.cmd == CMD_SEND_MODULE_P0_ACK) &&
                                        (send_headPart.sn == recv_commonCmd.head_part.sn)) break;
只有sn和ACK匹配,才被认为mcu发送成功!

6

主题

21

帖子

98

积分

注册会员

Rank: 2

积分
98
地板
 楼主| 发表于 2015-4-16 11:25:19 | 只看该作者
Snail 发表于 2015-4-16 11:23
你好,
        请看宠物屋mcu的例子(https://github.com/gizwits/gokit-mcu),这个函数:SendToUart
    ...

是的是的,看到了..谢谢!

51

主题

99

帖子

827

积分

高级会员

Rank: 4

积分
827
5#
发表于 2015-4-16 11:28:50 | 只看该作者
注册成为机智云开发者,手机加虚拟设备快速开发
memcpy(&recv_commonCmd, uart_buf, sizeof(pro_commonCmd)); //uart_buf就是mcu接收到wifi串口过来的数据(wifi模组的回应),这里放到缓存,下面下一步就是检测了。

6

主题

21

帖子

98

积分

注册会员

Rank: 2

积分
98
6#
 楼主| 发表于 2015-4-16 11:57:35 | 只看该作者
Snail 发表于 2015-4-16 11:28
memcpy(&recv_commonCmd, uart_buf, sizeof(pro_commonCmd)); //uart_buf就是mcu接收到wifi串口过来的数据 ...

谢谢,还有啊,请问宠物屋里串口接收这部分....cmd_flag2有什么用呢?

怎么if(cmd_flag2 == 0)然后就套个 if(cmd_flag2==1)呢?这样又什么作用呢?


51

主题

99

帖子

827

积分

高级会员

Rank: 4

积分
827
7#
发表于 2015-4-16 14:13:20 | 只看该作者
疯狂者 发表于 2015-4-16 11:57
谢谢,还有啊,请问宠物屋里串口接收这部分....cmd_flag2有什么用呢?

怎么if(cmd_flag2 == 0)然后就 ...

你好,
      这个是中断处理函数,这段逻辑上是有问题,后续gokit mcu的源码我们也会做一次完善。
      感谢发现!

6

主题

21

帖子

98

积分

注册会员

Rank: 2

积分
98
8#
 楼主| 发表于 2015-4-16 15:59:18 | 只看该作者
Snail 发表于 2015-4-16 14:13
你好,
      这个是中断处理函数,这段逻辑上是有问题,后续gokit mcu的源码我们也会做一次完善。
      ...

哦哦,原来如此....

0

主题

6

帖子

35

积分

新手上路

Rank: 1

积分
35
9#
发表于 2015-4-20 16:24:35 | 只看该作者
真的是一个BUG, 我在这里纠结了好一阵, 多线程的想法都出来了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

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