for 单片机开发人员
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
HekrProtocol 修改 example文件夹下的所有单片机DEMO,增加ProdKey设置函数等9个函数 Jun 30, 2016
SteplessDimming Add prj stepless dimming Sep 22, 2015
example 修改 example文件夹下的所有单片机DEMO,增加ProdKey设置函数等9个函数 Jun 30, 2016
.gitignore Add .gitignore Jul 30, 2015
HEKR-MCU-SDK使用示例.pdf 更新使用示例文档 Nov 17, 2015
README.md

README.md

#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中提交问题