Skip to content

HEKR-Cloud/HEKR-MCU-SDK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#HEKR-MCU-SDK 说明文档

##0.主要内容

  • SDK简介
  • Hekr_Protocol 目录结构
  • 氦氪HEKR模块透传协议示例
  • 移植样例
  • 无级调光案例
  • 更新历史
  • 相关链接及反馈

##1. SDK简介

  • 开发平台 STM8S103F3P
  • 开发环境 STVD V3.6.5.2
  • 开发工具 ST-LINK V2
  • 通信方式 UART 参数 9600-8-N-1
  • 通信协议 氦氪HEKR模块透传协议

##2. Hekr_Protocol 目录结构

├── App
├── Chip
├── Project
└── System

####App 氦氪HEKR模块透传协议

  • hekr_protocol.h : 数据结构定义及User API声明
  • hekr_protocol.c : 具体函数实现

####Chip STM8S 芯片驱动

  • stm8_uart.h
  • stm8_uart.c

####Project 工程主目录

  • main.c : Hekr协议使用样板
  • stm8_interrupt_vector.c : STM8中断向量表

####System STM8 系统时钟等相关配置与定义

##3. 氦氪HEKR模块透传协议示例

####透传协议示例 定义用户需要的最长长度

// 使用前要定义用户所需要的最大数组  默认为100 大于100需要自行修改
//数组大小可以自行修改为最长长度  
// 如果有多条不等长命令  取最长长度 为用户数据长度  非整帧长度
#define USER_MAX_LEN  0x64u

Hekr 协议初始化

//Hekr 协议初始化
//使用Hekr协议前需完成初始化
//初始化需要用户有串口发送一个byte的程序
//eg:  void UART_SendChar(u8 ch); 传输参数必须只是一个8bit的数
//     该函数需要用户自行在程序中定义
//HekrInit函数:
//传入参数为用户串口发送一个byte函数的函数名
//void HekrInit(void (*fun)(unsigned char));
HekrInit(UART_SendChar);   

协议数据发送示例

// 主动上传用户数据(数据保存在valid_data数组里)
// UserValidLen  为用户数据长度  非整帧长度
HekrValidDataUpload(UserValidLen);
// 查询 Hekr模块当前状态
Module_State_Function(); 
// 配置Hekr模块进入Hekr_Config模式
Hekr_Config_Function();

协议接收处理示例

if(DateHandleFlag)
{
	temp = HekrRecvDataHandle(RecvBuffer);
	if(ValidDataUpdate == temp)
	{
       //接收的产品业务数据保存在 valid data 数组里
       /************产品业务数据操作用户代码********/
        SendChar(valid_data[0]);
       /********************************************/
	}
	if(HekrModuleStateUpdate == temp)
	{
       //接收的模块状态取值保存在 ModuleStatus 指针里
       /*************模块状态操作用户代码************/
        SendChar(ModuleStatus->Mode);           //打印模块工作模式指示字节
        SendChar(ModuleStatus->WIFI_Status);    //打印模块WIFI状态指示字节
        SendChar(ModuleStatus->CloudStatus);    //打印模块云链接状态指示字节
        SendChar(ModuleStatus->SignalStrength); //打印模块状态查询应答帧保留字节
       /*************模块状态取值参考:http://docs.hekr.me/v4/resourceDownload/protocol/uart/#42  **********/
	}
	DateHandleFlag = 0;			
}		

####对于用户数据多种或不等长补充说明 ####接收

  • 如果有多条不等长命令可以正常接收
  • 接收的数据保存在 valid_data 数组里
  • 用户需要自行判断命令是哪一种

####上传

  • 把数据保存到 valid_data 中
  • 传入参数为对应命令长度 即可正常上传

##4.移植样例 example 文件夹下是移植完成的MCU-SDK

####4.1 STM32的hekr协议SDK 具体参数如下

  • 开发平台 STM32F103C8T6
  • 开发环境 MDK5.13
  • 开发工具 Jlink , Jlink-OB , ST-LINK V2
  • 通信方式 UART3 参数 9600-8-N-1
  • 通信协议 氦氪HEKR模块透传协议

####4.2 STM32-uCOSIII 的hekr协议SDK 具体参数如下

  • 开发平台 STM32F103C8T6
  • 开发环境 MDK5.13
  • 开发工具 Jlink , Jlink-OB , ST-LINK V2
  • 通信方式 UART3 参数 9600-8-N-1
  • 通信协议 氦氪HEKR模块透传协议
  • uCOSIII Version : V3.03.00

####4.3 Arduino 的hekr协议SDK 具体参数如下

  • 开发平台 mega328p
  • 开发环境 Arduino IDE 1.6.5
  • 开发工具 UART模块
  • 通信方式 UART 参数 9600-8-N-1
  • 通信协议 氦氪HEKR模块透传协议

注意: 提供的Arduino库文件是.cpp 仅仅是后缀不同,内容相同,详细描述在对应文件夹下的Readme.txt中

####4.4 C51 的hekr协议SDK 具体参数如下

  • 开发平台 STC89C52
  • 开发环境 Keil 4.72.90
  • 开发工具 UART模块
  • 通信方式 UART 参数 9600-8-N-1
  • 通信协议 氦氪HEKR模块透传协议

注意: 提供的51的库文件在使用是要定义一个宏,其他无需定义,头文件中有描述 SDK 中配置的波特率是2400,9600需要自行配置

####4.5 MSP430 的hekr协议SDK 具体参数如下

  • 开发平台 MSP430F149
  • 开发环境 IAR 5.30.1
  • 开发工具 UART模块 MSP430BSL
  • 通信方式 UART 参数 9600-8-N-1
  • 通信协议 氦氪HEKR模块透传协议

##5.无级调光案例 案例

  • 开发文档 Hekr-SDK使用示例.pdf
  • 开发平台 STM8S103F3P
  • 开发环境 STVD V3.6.5.2
  • 开发工具 ST-LINK V2
  • 通信方式 UART 参数 9600-8-N-1
  • 通信协议 氦氪HEKR模块透传协议

##6.更新历史

  • 2015.7.30 STM8-SDK及Readme.md文档编写
  • 2015.8.07 增加STM32-SDK移植样例 Readme.md文档补充
  • 2015.8.13 修复收到的有效数据缺位错误
  • 2015.8.14 增加用户不等长命令描述 Readme.md文档补充
  • 2015.8.19 增加STM32-uCOSIII SDK例程 Readme.md文档补充
  • 2015.8.26 完善帧序号,模块状态改为指针,优化代码结构
  • 2015.8.26 更新STM32-SDK
  • 2015.8.26 更新STM32-uCOSIII-SDK
  • 2015.9.01 增加Arduino-SDK 去移植操作 增加发送函数绑定
  • 2015.9.06 更新STM8-SDK
  • 2015.9.06 更新STM32-SDK
  • 2015.9.06 更新STM32-uCOSIII-SDK
  • 2015.9.07 增加51-SDK
  • 2015.9.07 增加MSP430-SDK
  • 2015.9.22 无级调光案例
  • 2016.6.30 所有例程增加ProdKey设置帧发送等九个函数,修改注释

##7.相关链接及反馈

SDK 获取 : https://github.com/HEKR-Cloud/HEKR-MCU-SDK.git

氦氪HEKR模块透传协议 : http://docs.hekr.me/protocol/

Bug反馈 : 请在issues中提交问题