收藏官网首页
查看: 339|回复: 0

[分享] 基于机智云移植STM32L496G代码移植

55

主题

55

帖子

3648

积分

论坛元老

Rank: 8Rank: 8

积分
3648
 楼主| 发表于 2024-9-18 15:53:35 | 显示全部楼层 |阅读模式
汉枫LPB120模块
基于机智云移植STM32L496G代码移植    前言
最近拿到STM32L496AGMCU,发现其中的扩展版可以连接ESP-01S,就像尝试一下将开发板连接到我们的机智云上。根据机智云提供的文档来移植我们的程序。
在移植的过程中遇到的一些问题,这里我将重构一下,大致内容跟文档差不多,但是根据文档的操作,会产生一些奇怪的报错,这里可以根据我的操作做新的移植操作。
移植到其他平台
1.创建STM32CubeMX 工程文件
在STM32CubeMX中直接选择您所使用的 MCU(比如这里我们选择STM32L496AGIx) ,如下:
1.png
点击“Project → Setting”设置工程目录位置以及相应参数如下所示:
图片2.png
注:里编译器选择为Keil 5
2.导入机智云模板配置文件
因为机智云自动生成的源码中已经包含了对应平台的STM32CubeMX工程配置文件,相关驱动参数已经是配置过的,为方便开发者将STM32的源码移植到其他的平台,我们可以使用STM32CubeMX的配置文件导入功能,将STM32F103平台的配置参数导入到STM32L496ZGT6平台,如下:
选择File > Import Project
图片3.png
注:只有空白文档才能导入到我们的工程里面
图片4.png
可以看到我们的对应的引脚已经配置上了
图片5.png 图片6.png
我们查看原理图发现USART2是STlink的板载通讯,这里我们将板载通讯修改为115200
图片7.png 图片8.png
修改之后我们直接点击创建工程
图片9.png
我们先关闭项目,之后我们打开之后对应的文件夹。
移植代码
此时的工程中只有STM32L496ZGT相关的驱动代码,若要使用机智云的联网能力就需要移植相关的协议源码(即前文介绍的已自动生成的STM32F103工程中的三个文件:Gizwits、Hal、Utils
移植前的STM32L496AGIx工程目录如下:
图片10.png
移植后(即从STM32F103中复制Gizwits、Hal、Utils到STM32L496AGIx下)如下
图片11.png
接下来我们在STM32L496ZGT的keill5工程中添加如下的目录结构:
图片12.png
同理加入相应的编译路径:
图片13.png
接下来要修改编辑机智云的代码,但移植文档的时间为2017年左右的,其中机智云生成代码会有所改变,接下来我是通过下载到的软件包,将其中的代码移植成功。因为按照文档的操作有些代码与现在代码包不匹配,所以会有所报错。
首先,为了适配对应的平台应在gizwits_product.h / hal_key.h 中替换为对应平台的头文件,例如:
将原来F103C8平台的头文件 #include “stm32f1xx_hal.h”** 替换为L496ZGT平台的 #include"stm32l4xx_hal.h"
注:可以在根目录下的 Drivers\STM32F1xx_HAL_Driver\Inc 中找到对应平台的头文件。
接下来在main.c中添加与机智云协议处理相关的代码:
·   首先是引用的相关头文件:
图片14.png
·   下面是长短按按键回调函数的定义:
直接在f103的代码直接复制过来按键代码(新版代码逻辑有所改变)
图片15.png
图片16.png
·   接下来是对相关驱动模块以及机智云协议模块的初始化:**
图片17.png
·   最后是在main函数中的循环处理函数调用:
图片18.png
其中我们需要将引入的头文件.h的f103修改对应的头文件,这是多数报错的问题。
最后点击编译出现零错误零警告
图片19.png
我们成功将机智云代码移植过来,之后我们烧录来验证一下程序是否能正常的执行,其中有些代码还需要修改,要根据自己的开发板的串口引脚进行改变,之后我们会通过连接到机智云点亮小灯来验证串口代码问题,大致基本移植可以完成。
这是我移植好的代码:大家可以参考使用链接:https://pan.baidu.com/s/19rAwjyr9_BzK7oe-mqu55Q?pwd=8qlk
提取码:8qlk

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表