找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1923|回复: 0
收起左侧

OneNET麒麟座 迷你版程序

[复制链接]
ID:511461 发表于 2019-7-21 10:36 | 显示全部楼层 |阅读模式
//单片机头文件
#include "stm32f10x.h"

//网络协议层
#include "onenet.h"

//网络设备
#include "esp8266.h"

//硬件驱动
#include "delay.h"
#include "usart.h"
#include "i2c.h"
#include "sht20.h"

//C库
#include <string.h>
#include <stdlib.h>


extern unsigned char data_bytes;

extern unsigned char m_cmd, rev_cmd_cnt;

extern unsigned char r_addr, r_len;


/*
************************************************************
*        函数名称:        Hardware_Init
*
*        函数功能:        硬件初始化
*
*        入口参数:        无
*
*        返回参数:        无
*
*        说明:                初始化单片机功能以及外接设备
************************************************************
*/
void Hardware_Init(void)
{
        
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);        //中断控制器分组设置

        Delay_Init();                                                                        //systick初始化
        
        Usart1_Init(115200);                                                        //串口1,打印信息用
        
        Usart2_Init(115200);                                                        //串口2,驱动ESP8266用
        
        IIC_Init();                                                                                //IIC初始化
        
        UsartPrintf(USART_DEBUG, " Hardware init OK\r\n");
        
}

/*
************************************************************
*        函数名称:        main
*
*        函数功能:        
*
*        入口参数:        无
*
*        返回参数:        0
*
*        说明:               
************************************************************
*/
int main(void)
{
        
        unsigned char *dataPtr = NULL;
        
        Hardware_Init();                                //初始化外围硬件
        
        ESP8266_Init();                                        //初始化ESP8266
        
        while(OneNet_DevLink())                        //接入OneNET
                DelayXms(500);
        
        while(1)
        {
               
                dataPtr = ESP8266_GetIPD(0);
                if(dataPtr != NULL)
                        OneNet_RevPro(dataPtr, data_bytes);
               
                if(rev_cmd_cnt > 0)                                                                                        //如果收到平台的查询命令
                {
                        --rev_cmd_cnt;
                        
                        //根据命令码、寄存器地址、寄存器地址长度吧要上传的值放入链表里
                        //本例程命令码为3代表查询传感器数据,为4代表控制相关外设
                        switch(m_cmd)
                        {
                                case 3:                                                                                                //控制外设
                                {
                                        unsigned short *value_table = malloc(r_len << 1);
                                        _Bool flag = 1;
                                       
                                        SHT20_GetValue();
                                       
                                        if(value_table != NULL)
                                        {
                                                switch(r_addr)
                                                {
                                                        //010300010001D5CA
                                                        case 1: value_table[0] = (unsigned short)(sht20_info.tempreture * 100); break;
                                                        
                                                        //01030002000125CA
                                                        case 2: value_table[0] = (unsigned short)(sht20_info.humidity * 100); break;
                                                        
                                                        default: flag = 0; break;
                                                }
                                                
                                                if(flag)
                                                        OneNet_SendData(value_table, r_len);
                                                
                                                free(value_table);
                                        }
                                }
                                break;
                                
                                default:
                                break;
                        }
                }
               
                DelayXms(10);
        
        }

}


360截图20190721103105646.jpg
360截图20190721103125078.jpg
360截图20190721103140615.jpg
360截图20190721103158759.jpg

1.kyLinMini-V1.x-基础学习例程.zip

8.47 MB, 下载次数: 17, 下载积分: 黑币 -5

2.kyLinMini-V1.x-OneNET-裸机-基础例程.zip

11.03 MB, 下载次数: 17, 下载积分: 黑币 -5

3.kyLinMini-V1.x-OneNET-裸机-进阶例程.zip

4.97 MB, 下载次数: 11, 下载积分: 黑币 -5

4.kyLinMini-V1.x-OneNET-RTOS.zip

9.59 MB, 下载次数: 9, 下载积分: 黑币 -5

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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