千秋波罗 发表于 2015-12-26 12:32:06

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

本帖最后由 千秋波罗 于 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;                                                               //串口缓冲区
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=vlue;
                                                uart_Count++;      
                                                cmd_flag1 = 1;
                              }                        
                              return ;
                        }
                        else if(cmd_flag2 ==0)
                        {
                                                uart_buf=vlue;
                                                uart_Count++;
                                                if(uart_buf == 0xff)
                                                {
                                                      cmd_flag2 = 1;                                                      
                                                }      
                                                else
                                                {
                                                      cmd_flag1 = 0;
                                                }
                              return ;
                        }
                        else
                        {                              
                        uart_buf = vlue;
                        if(uart_Count >=4 && uart_buf == 0x55 && uart_buf == 0xFF){}
                        else uart_Count++;
                        if(uart_Count == 0x04)
                        {
                              cmd_len = uart_buf*256 +uart_buf;                                                                                                                        
                        }
                        if(uart_Count ==(cmd_len + 4))
                        {
                              get_one_package = 1;
                              cmd_flag1 = 0;
                              cmd_flag2 = 0;
                        }      
               }                        
                }               
}      


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

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

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




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

首先添加了KEY按键扫描





按键扫描的具体配置请自己去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取反。
可以在开放平台的运行状态,点开运行记录。然后看一看发生了什么吧。

求抱大腿 发表于 2015-12-26 14:19:45

必须顶一个   

菜鸟一号 发表于 2015-12-26 15:16:46

顶!!!!!!!!!!!!!!!!!!!!

幸福猪猪 发表于 2015-12-26 15:43:31

看下!!!!!!!!!!!!!!!!!!!

michael_llh 发表于 2015-12-26 16:21:14

给楼主顶一个!!

林林 发表于 2015-12-26 16:42:12

是Zigbee的协议吧,支持一下!

千秋波罗 发表于 2015-12-26 16:44:27

林林 发表于 2015-12-26 16:42
是Zigbee的协议吧,支持一下!

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

林林 发表于 2015-12-26 16:46:41

我只表示你抠门,等几天再来试试下

古城浪子 发表于 2015-12-26 22:04:25

楼主写的不错!顶一个

yCat 发表于 2015-12-27 18:59:49

:@菠萝不干净~

随缘浪子2015 发表于 2015-12-27 19:12:49

我也把它按自己的理解写出来了~~~~

千秋波罗 发表于 2015-12-27 23:45:10

yCat 发表于 2015-12-27 18:59
菠萝不干净~

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

Lin 发表于 2015-12-28 12:03:40

给楼主顶一个!!{:2_31:}

最绝色的红 发表于 2016-3-11 13:04:19

mark。一下。下次直接来拿

zpchen 发表于 2016-3-11 13:46:31

顶一个!!!!!!!!!!!!!!!!!!
页: [1]
查看完整版本: stm32机智云对接干净移植程序详解