快速开发GD32和涂鸦CBU模组通信

MCU和CBU模组通信

采用兆易创新的GD32单片机和涂鸦 CBU (低功耗嵌入式Wi-Fi+BLE 双协议)模组进行通信。

本文将教大家如何从0开始上手GD32系列单片机,并移植涂鸦MCU-SDK来对接涂鸦CBU模组,快速接入涂鸦云。

实现功能:通过手机APP控制灯的亮灭。

程序下载路径:demo程序。

工程搭建

本文选用的MCU型号为GD32E230C8T6,按照以下流程操作即可创建一个Keil5环境的工程模板:

  • 首先去官网下载GD32E230C8T6的环境支持包和标准固件库:
      对于E230、E231 如果您单独使用,要求KEIL 5.25以上,GD 的其他系列是支持KEIL4 的。 如果KEIL5版本低于5.25,程序会编译不通过。
    快速开发GD32和涂鸦CBU模组通信_第1张图片
    环境开发支持包5.25以上
    在这里插入图片描述
    标准固件库

  • 按照自己使用的IDE选择相应的支持包进行安装:

  • 创建一个文件夹,并在其中按照下图创建相应的文件夹:
    快速开发GD32和涂鸦CBU模组通信_第2张图片

  • 下载GD32E23x_Firmware_Library
    快速开发GD32和涂鸦CBU模组通信_第3张图片
    将其放在对应的文件夹里

  • 打开Keil5,创建新工程,然后选择对应的MCU型号。

    怎么在KEIL5中创建工程这里不在详述。

    MCU SDK移植
      进入涂鸦智能IoT平台,点击创建产品。这里不用纠结产品品类的选择,重点是为了拿到MCU-SDK文件,实际使用时可以根据具体的产品修改sdk内部的pid即可适配自己的产品。
    快速开发GD32和涂鸦CBU模组通信_第4张图片
    这里以普通的灯为例,选择照明->光源->自定义方案
    快速开发GD32和涂鸦CBU模组通信_第5张图片
    输入任意产品名称,通讯协议选择 WiFi+蓝牙,确认创建。
    快速开发GD32和涂鸦CBU模组通信_第6张图片
    在跳出的界面点击红色箭头所指的地方,然后删除所有的已选功能,接着在左边选择光源的功能,选择功能为开关。选择好之后点击确定。
    快速开发GD32和涂鸦CBU模组通信_第7张图片快速开发GD32和涂鸦CBU模组通信_第8张图片
    点击设置面板,选择自由配置面板,如下所示。
    快速开发GD32和涂鸦CBU模组通信_第9张图片

    点开硬件开发一栏,对接方式选择“涂鸦标准模组MCU SDK开发”,模组选择CBU Wi-Fi&Bluetooth模组(在实际开发过程中可选择手上已有的涂鸦模组即可)
    快速开发GD32和涂鸦CBU模组通信_第10张图片

    固件选择标准通用固件

    快速开发GD32和涂鸦CBU模组通信_第11张图片

    拉到页面最下方,在下载资料一栏点击下载全部:

    快速开发GD32和涂鸦CBU模组通信_第12张图片

    在解压后的文件夹中找到mcu_sdk相关源文件和头文件,全部拷贝到我们创建好的GD32工程模板里的MCU_SDK文件夹里:; 打开GD32工程,将mcu_sdk的源文件添加进对应组里,同时添加include paths:
    快速开发GD32和涂鸦CBU模组通信_第13张图片快速开发GD32和涂鸦CBU模组通信_第14张图片

    点击编译,会崩出几个error,接下来就需要按照出error的地方注释提示一步步修改代码。快速开发GD32和涂鸦CBU模组通信_第15张图片
    uart_receive_input()为串口接收数据处理接口,只需将它放进串口中断中即可,这里我们以串口1作为与模组通讯串口,调试中把串口0作为日志口,首先在main函数中添加串口0和串口1初始化代码,并使能接收中断(接收使能中断已在串口初始化函数中体现):
    快速开发GD32和涂鸦CBU模组通信_第16张图片

  • 然后在usart.c文件中添加中断处理函数,然后包含 wifi.h 文件并将uart_receive_input()接口添加进去,添加完成后,删除error注释即可:
    快速开发GD32和涂鸦CBU模组通信_第17张图片快速开发GD32和涂鸦CBU模组通信_第18张图片

再来看下一个errror,由于我们上一步已经通过中断接收的形式实现了串口数据接收处理了,这个多字节处理我们可以不用,直接把error注释删除即可。
快速开发GD32和涂鸦CBU模组通信_第19张图片
下一个errror:
快速开发GD32和涂鸦CBU模组通信_第20张图片

按照提示将该接口放在main函数的while循环内即可,别忘了在 main.c 中包含 wifi.h 头文件。
快速开发GD32和涂鸦CBU模组通信_第21张图片

再来看下一个error:
快速开发GD32和涂鸦CBU模组通信_第22张图片
同样的,按照提示将该函数放到main函数开头部分即可。
快速开发GD32和涂鸦CBU模组通信_第23张图片

然后是串口发送相关:
快速开发GD32和涂鸦CBU模组通信_第24张图片

这里只需实现串口1的数据发送函数然后放进去即可。使用GD32的串口单字节发送的库函数,同时对发送情况做一个判断,添加代码如下:
快速开发GD32和涂鸦CBU模组通信_第25张图片快速开发GD32和涂鸦CBU模组通信_第26张图片

然后是DP数据点上报相关的:

这里我们可以直接注释掉error提示,在实际开发过程中再实现该功能即可。红色标记的这句当硬件有设备可以控制灯的时候可以加上,如果没有可以不用加的。
快速开发GD32和涂鸦CBU模组通信_第27张图片

以下这个函数,改成自己想实现的功能。此处当收到APP关灯指令时,让PA7这个口拉低,反之,则拉高。(PA7管脚控制灯的亮灭)
快速开发GD32和涂鸦CBU模组通信_第28张图片

最后是产测相关的:
快速开发GD32和涂鸦CBU模组通信_第29张图片

一般开发者不涉及生产测试的话直接删除注释不用管就行。

下图这个红色标出的函数是进行配网的,通过板子上的一个用户按键进行配网连接。
快速开发GD32和涂鸦CBU模组通信_第30张图片
快速开发GD32和涂鸦CBU模组通信_第31张图片

修改完上述几处地方后,再次编译,显示error全部消除,至此涂鸦MCU SDK就已移植完毕,后续可使用涂鸦模组调试助手进行测试。涂鸦模组调试助手的使用方法可参考调试助手文档。

实验结果演示:

通过之前配置好的面板,通过涂鸦智能APP进行配网控制灯的亮灭。
快速开发GD32和涂鸦CBU模组通信_第32张图片
快速开发GD32和涂鸦CBU模组通信_第33张图片

你可能感兴趣的:(快速开始,技术干货,嵌入式,单片机,物联网)