STM32代码自动生成工具,三步搞定一个智能硬件APP开发
“只需要在对应的事件处理逻辑中添加传感器的控制函数,就可以完成产品的开发。”
这些日子得空,研究了不同智能硬件设备云平台的工具。发现一个好用的工具——MCU代码自动生成工具,确实能节省不少开发时间。使用MCU代码自动生成工具,不必再关注各种协议,只需将精力放在核心应用开发上。
目前,MCU代码自动生成工具支持以下几种型号:
stm32f103c8x、
stm32F407、
stm32F429、
stm32F767平台、
Arduino uno wifi通用平台
(我使用的是STM32F407代码自动生成工具。)
具体而言,代码自动生成工具能根据你的产品自动填写了productkey,根据你设置的数据点来自动生成数据点的结构体。自动生成的代码实现了机智云通信协议的解析与封包、传感器数据与通信数据的转换逻辑,并封装成了简单的API,且提供了多种平台的实例代码。当设备收到云端或APP端的数据后,程序会将数据转换成对应的事件并通知到应用层,开发者只需要在对应的事件处理逻辑中添加传感器的控制函数,就可以完成产品的开发。
要强调的一点是,已经根据用户定义的产品数据点信息,并针对STM32、ESP8266等平台,生成了对应的机智云串口协议层代码,用户只需要调用相应的API接口或添加相应的逻辑处理即可。基于MCU代码自动生成工具生成的代码代码框架如下图所示:
![](http://upload-images.jianshu.io/upload_images/439600-482299bcff6dbd66.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
需要开发的部分为:
1)下行处理:动作执行,例如LED灯开关、电机转速控制等。
2)上行处理:数据采集,例如温湿度数据采集,红外传感器状态获取等。
3)配置处理:配置入网及恢复出厂设置。
此外,因自动生成的代码在各平台之间使用了统一的协议封装,故二次开发所完成的修改也几乎相同。需要开发的部分
1)下行处理之传感器驱动开发:首先要完成的是传感器驱动开发,然后在Gizwits目录下的gizwits_product.c文件中的gizwitsEventProcess()函数中处理相应事件即可
2)上行处理之传感器数据采集:首先要完成的是传感器驱动开发,然后在user目录下main.c文件中的userHandle()函数中实现传感器数据采集,用户只需并将采集到的数值赋值给对应用户区的设备状态结构体数据位即可
3)配置处理:除了数据的上行与下行处理外,还需要做:配置入网及恢复出厂设置。(机智云提供了API实现配置入网及恢复出厂配置。)
此外,机智云提供了一个“智能灯”帮助理解“MCU代码自动生成工具”