机智云协议移植到CH32V307VCT6
本帖最后由 mmuyu 于 2023-8-25 21:45 编辑CH32V307VCT6是沁恒推出的32位risc-v单片机,资源非常丰富,拥有64kbram 256kb rom ,80个goio口······。这些资源可以为我们在复杂的应用场景提供非常大的帮助,下面我们看一下怎么移植。
首先,新建一个项目,建立两个文件夹Gizwits和Utils用于存放机智云的数据点文件和组件。
接下来,右键项目-》properties-》c/C++general-》paths and symbol->gun c 包含我们创建的两个文件夹
配置完成后,我们要在main文件引入机智云的头文件 main代码可以复制机智云的。
#include <string.h>
#include "gizwits_product.h"
#include "common.h"
main:
userInit();
gizwitsInit();
while(1)
{
userHandle();
gizwitsHandle((dataPoint_t *)¤tDataPoint);
}要想设备和平台通信,我们需要编写代码初始化串口与wifi模组通信,因为只是简单的异步通信,因此我这里找了一个只有异步通信功能的串口uart5.
查看数据手册可以看到,端口分别连接到了PD2和PC12,了解后我们就可以编写对应的初始化和中断了
初始化uart:
uart中断:在中断里调用机智云的处理函数
完成后,我们到机智云的product文件里完善串口发送数据的代码。只需要调用串口发送的函数即可。
接下来完成定时器产生1ms中断的功能,用于提供给机智云维持业务运行和时间统计,我们只需要产生更新中断,并不需要其他高级功能,这里选用基本的定时器即可,高级的定时器留给后续需要用到的功能。
定时器中断函数:
接下来,我们就可以编译烧录到单片机里了,除了这些代码,我另外初始化了一个gpio用于点亮led检测是否正常运行。
效果:
页:
[1]