收藏官网首页
查看: 21975|回复: 14

stm32机智云对接干净移植程序详解

7

主题

13

帖子

170

积分

注册会员

Rank: 2

积分
170
跳转到指定楼层
楼主
发表于 2015-12-26 12:32:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
免费使用STM32、APP自动代码生成工具
本帖最后由 千秋波罗 于 2015-12-27 19:30 编辑

还在分析别人的程序?
还在为移植机智云协议苦恼?
还在不知道怎么添加自己的应用?
别急,最干净的STM32机智云对接程序来了!
秒秒钟能看懂!
只需两步就可以把机智云对接程序移走,放入自己的工程!尽情享用吧。

以上是主程序,如果觉得还不够干净就别来了。如果觉得看不懂回去补补基础吧。

=================================================================既然是详解,肯定不会让大家失望!之后我会对程序在本帖子做详细分析。
因为我根本没准备,不能把教程一次性发上来。
所以新手可以跟帖一下,老手把程序抱走就可以了。谢谢。
=================================================================今天讲,如何把我程序移入自己的工程里面。
只需要两步。
第一步,将HARDWARE文件夹里面的Protocol与TIMER文件夹放入自己的工程里面。

第二步,将串口协议移植过去。
协议请打开usart.c文件。
===================
u8         get_one_package;                                                        //判断是否接收到一个完整的串口数据包
u8         cmd_flag1, cmd_flag2;
u16                 uart_Count=0;                                                                        //串口缓冲区数据长度
u8                 uart_buf[256];                                                                 //串口缓冲区
u16                 cmd_len =0 ;        
====================
先加入全局变量
再修改串口接收协议的中断
=====================
void USART1_IRQHandler(void)                        //串口1中断服务程序
        {
        uint8_t         vlue;
   if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
  {
                USART_ClearITPendingBit(USART1,USART_IT_RXNE);
                vlue = USART_ReceiveData(USART1);
                if(get_one_package ==0)
                {
                        if(cmd_flag1 ==0)
                        {
                                if(vlue == 0xff)
                                {   
                                                uart_Count = 0;                                                
                                                uart_buf[uart_Count]=vlue;
                                                uart_Count++;        
                                                cmd_flag1 = 1;
                                }                        
                                return ;
                        }
                        else if(cmd_flag2 ==0)
                        {
                                                uart_buf[uart_Count]=vlue;
                                                uart_Count++;
                                                if(uart_buf[1] == 0xff)
                                                {
                                                        cmd_flag2 = 1;                                                        
                                                }        
                                                else
                                                {
                                                        cmd_flag1 = 0;
                                                }
                                return ;
                        }
                        else
                        {                                
                        uart_buf[uart_Count] = vlue;
                        if(uart_Count >=4 && uart_buf[uart_Count] == 0x55 && uart_buf[uart_Count-1] == 0xFF){}
                        else uart_Count++;
                        if(uart_Count == 0x04)
                        {
                                cmd_len = uart_buf[2]*256 +  uart_buf[3];                                                                                                                        
                        }
                        if(uart_Count ==  (cmd_len + 4))
                        {
                                get_one_package = 1;
                                cmd_flag1 = 0;
                                cmd_flag2 = 0;
                        }        
                 }                        
                }               
  }        


=======================================
好了,移植完了。编译一下,99%应该通过了。
然后编辑主程序。嘿咻嘿咻,快去用软件调试一下吧。

高手可以走了。以下是新手教程了。

新手的话,先暂时不要移植了。跟我先调通了再说。
今天就到这里了。先去用串口工具试一试。
把我提供的程序直接烧进去,这个时候只能用串口工具去调试看一下接口是否正常!!!
暂时还不能用。

stm32机智云对接干净移植.rar (292 KB, 下载次数: 175)


=================================
连接机智云

首先添加了KEY按键扫描



stm32机智云对接程序2.rar (291.97 KB, 下载次数: 126)

按键扫描的具体配置请自己去KEY.C KEY.H里面去修改

按键主要做了4件事
看一下KEY()
void key(void)
{
switch(KEY_Scan(0)) //按键扫描
{
        case 1:        m_pro_commonCmd.head_part.cmd = CMD_RESET_MODULE;    //wifi模块重启
                        m_pro_commonCmd.head_part.sn = ++SN;
                        m_pro_commonCmd.sum = CheckSum((uint8_t *)&m_pro_commonCmd, sizeof(pro_commonCmd));
                        SendToUart((uint8_t *)&m_pro_commonCmd, sizeof(pro_commonCmd), 1);
         break;
        case 2:  m_m2w_mcuStatus.status_r.led0=!m_m2w_mcuStatus.status_r.led0;  //发送led0 取反到机智云
                break;
        case 3:  m_m2w_setModule.config_info = 0x01;                       //启动softAP 模式
                        m_m2w_setModule.head_part.sn = ++SN;
                m_m2w_setModule.sum = CheckSum((uint8_t *)&m_m2w_setModule, sizeof(m2w_setModule));
                SendToUart((uint8_t *)&m_m2w_setModule, sizeof(m2w_setModule), 1);
                break;
        case 4:  m_m2w_setModule.config_info = 0x02;                       //启动 Air Link 模式
                        m_m2w_setModule.head_part.sn = ++SN;
                m_m2w_setModule.sum = CheckSum((uint8_t *)&m_m2w_setModule, sizeof(m2w_setModule));
                SendToUart((uint8_t *)&m_m2w_setModule, sizeof(m2w_setModule), 1);
                break;        
}
}

KEY_Scan(0)是一个按键扫描的程序,返回读到的值,我默认返回1,2,3,4
按下1,//wifi模块重启
按下2 //发送led0 取反到机智云
按下3 //启动softAP 模式
按下4  //启动 Air Link 模式


接着我们在机智云的服务平台搭建自己的产品。

然后把产品KEY 替换掉程序里面的


接下来在数据点里创建一个LED


好了,把修改好了程序烧进MCU吧。

按下1,可以看到WIFI模块复位了。然后让wifi模块连接上互联网。这时候可以在开发平台的运行状态里应该可以看到设备已在线

按下2,发送LED取反。
可以在开放平台的运行状态,点开运行记录。然后看一看发生了什么吧。

5

主题

32

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
沙发
发表于 2015-12-26 14:19:45 | 只看该作者
必须顶一个   

2

主题

42

帖子

551

积分

高级会员

Rank: 4

积分
551
5#
发表于 2015-12-26 16:21:14 | 只看该作者
免费使用STM32、APP自动代码生成工具
给楼主顶一个!!

4

主题

60

帖子

555

积分

版主

Rank: 7Rank: 7Rank: 7

积分
555
6#
发表于 2015-12-26 16:42:12 | 只看该作者
是Zigbee的协议吧,支持一下!

7

主题

13

帖子

170

积分

注册会员

Rank: 2

积分
170
7#
 楼主| 发表于 2015-12-26 16:44:27 | 只看该作者
林林 发表于 2015-12-26 16:42
是Zigbee的协议吧,支持一下!

zigbee的真的不能公布的。哈哈。移植的裸机可以公布,但是协议栈我是不会放出来的。

4

主题

60

帖子

555

积分

版主

Rank: 7Rank: 7Rank: 7

积分
555
8#
发表于 2015-12-26 16:46:41 | 只看该作者
我只表示你抠门,等几天再来试试下

0

主题

4

帖子

61

积分

版主

Rank: 7Rank: 7Rank: 7

积分
61
9#
发表于 2015-12-26 22:04:25 | 只看该作者
楼主写的不错!顶一个
10#
发表于 2015-12-27 18:59:49 | 只看该作者
免费使用STM32、APP自动代码生成工具
菠萝不干净~

0

主题

22

帖子

78

积分

注册会员

Rank: 2

积分
78
11#
发表于 2015-12-27 19:12:49 | 只看该作者
我也把它按自己的理解写出来了~~~~

7

主题

13

帖子

170

积分

注册会员

Rank: 2

积分
170
12#
 楼主| 发表于 2015-12-27 23:45:10 | 只看该作者

鬼不干净~~又扯淡!!不要调皮!

1

主题

220

帖子

1198

积分

金牌会员

Rank: 6Rank: 6

积分
1198
13#
发表于 2015-12-28 12:03:40 | 只看该作者
给楼主顶一个!!

4

主题

19

帖子

589

积分

高级会员

Rank: 4

积分
589
14#
发表于 2016-3-11 13:04:19 来自手机 | 只看该作者
mark。一下。下次直接来拿

1

主题

5

帖子

19

积分

新手上路

Rank: 1

积分
19
15#
发表于 2016-3-11 13:46:31 | 只看该作者
校园创客福利
顶一个  !!!!!!!!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

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

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