0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于机智云移植STM32L496G代码移植

机智云 2024-09-20 08:05 次阅读

最近我拿到了STM32L496AGMCU,发现其扩展版可以连接ESP-01S。我想尝试将开发板连接到我们的机智云上,并根据机智云提供的文档进行程序移植。

STM32CubeMX移植机智云自动生成代码详解 - 机智云

在移植的过程中遇到的一些问题,这里我将重构一下,大致内容跟文档差不多,但是根据文档的操作,会产生一些奇怪的报错,这里可以根据我的操作做新的移植操作。

移植到其他平台

1.创建STM32CubeMX 工程文件

在STM32CubeMX中直接选择您所使用的 MCU(比如这里我们选择STM32L496AGIx) ,如下:

0ce7656e-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

点击“Project → Setting”设置工程目录位置以及相应参数如下所示:

0d03afb2-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

注:里编译器选择为Keil 5

导入机智云模板配置文件0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

因为机智云自动生成的源码中已经包含了对应平台的STM32CubeMX工程配置文件,相关驱动参数已经是配置过的,为方便开发者将STM32的源码移植到其他的平台,我们可以使用STM32CubeMX的配置文件导入功能,将STM32F103平台的配置参数导入到STM32L496ZGT6平台,如下:

选择File > Import Project

0d4724d6-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

注:只有空白文档才能导入到我们的工程里面

0d68c7da-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

可以看到我们的对应的引脚已经配置上了

0daf80c6-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

0de5584a-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

我们查看原理图发现USART2是STlink的板载通讯,这里我们将板载通讯修改为115200

0e069bd6-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

0e2208e4-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

修改之后我们直接点击创建工程

0e45c180-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

我们先关闭项目,之后我们打开之后对应的文件夹。

移植代码0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

此时的工程中只有STM32L496ZGT相关的驱动代码,若要使用机智云的联网能力就需要移植相关的协议源码(即前文介绍的已自动生成的STM32F103工程中的三个文件:Gizwits、Hal、Utils

移植前的STM32L496AGIx工程目录如下:

0e9981e4-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

移植后(即从STM32F103中复制Gizwits、Hal、Utils到STM32L496AGIx下)如下

0eb902a8-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

接下来我们在STM32L496ZGT的keill5工程中添加如下的目录结构:

0ee5b406-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

同理加入相应的编译路径:

0f1b2438-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.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中添加与机智云协议处理相关的代码:首先是引用的相关头文件

0f3c3588-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

长短按按键回调函数的定义

0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

直接在f103的代码直接复制过来按键代码(新版代码逻辑有所改变)

0f61205a-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png0f90b18a-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

· 接下来是对相关驱动模块以及机智云协议模块的初始化

0fbb86ee-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

· 最后是在main函数中的循环处理函数调用:

0fd642fe-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

其中我们需要将引入的头文件.h的f103修改对应的头文件,这是多数报错的问题。

最后点击编译出现零错误零警告

10048f42-76e4-11ef-bb4b-92fbcf53809c.png0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

我们成功将机智云代码移植过来,之后我们烧录来验证一下程序是否能正常的执行,其中有些代码还需要修改,要根据自己的开发板的串口引脚进行改变,之后我们会通过连接到机智云点亮小灯来验证串口代码问题,大致基本移植可以完成。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2257

    文章

    10828

    浏览量

    352433
  • 代码
    +关注

    关注

    30

    文章

    4670

    浏览量

    67761
  • 机智云
    +关注

    关注

    2

    文章

    563

    浏览量

    26313
收藏 人收藏

    评论

    相关推荐

    STM32L496G QSPI在DMA模式一段时间clock会被拉成Low,可否改善?

    我使用STM32L496G,与这篇遇到相同的问题,\"每次读取500个字节的数据的话,时钟会出现8个连续的周期,然后时钟被拉低了,过了很久再出现8个连续的周期\" ,不知道是否是DMA的关系,不知道有没有方法可以不拉低Clock?
    发表于 04-15 07:21

    stm32cubemx5.0,stm32l496G怎么没有touchgfx选项?

    最新版的stm32cubemx5.0,stm32l496G怎么没有touchgfx选项,
    发表于 04-23 07:04

    机智自动生成工程移植STM32CubeMX

    的接口,即可将机智自助生成的STM32方案工程里面的设备协议移植过来,真正实现全程图形化配置,傻瓜式开发,这样既可十分方便的将其它型号STM32
    发表于 02-07 16:59

    STM32CubeMX移植机智自动生成代码详解

    的工程中只有STM32L496ZGT相关的驱动代码,若要使用机智的联网能力就需要移植相关的协议源码(即前文介绍的已自动生成的
    发表于 12-28 13:50

    正点原子探索版STM32F407,接入机智代码移植

    为了给自己的移植过程做一个记录,特此写下正点原子探索者STM32F497的移植过程。移植步骤在机智
    发表于 06-17 12:12

    移植机智代码STM32F103

    二期移植机智代码STM32F103系列在哔站录了两期简单的视频 ,欢迎大家指正不足,我也是刚刚开始做,还有很多不足,如果视频中写的有什么
    发表于 08-03 07:46

    如何移植STM32固件库

    机智官方生成的MCU代码(hal库)移植STM32标准库教程手上刚好有STM32F103VC
    发表于 11-11 06:24

    怎样去移植基于STM32f013c8t6的机智

    怎样去移植基于STM32f013c8t6的机智呢?如何利用ESP8266烧录机智固件呢?
    发表于 12-10 06:30

    介绍STM32L496G开发套件的特点及应用

    STM32L496G套件介绍
    的头像 发表于 07-03 03:37 4879次阅读

    机智官方生成的MCU代码(hal库)移植STM32标准库教程

    机智官方生成的MCU代码(hal库)移植STM32标准库教程手上刚好有STM32F103VC
    发表于 11-06 09:51 15次下载
    <b class='flag-5'>机智</b><b class='flag-5'>云</b>官方生成的MCU<b class='flag-5'>代码</b>(hal库)<b class='flag-5'>移植</b>为<b class='flag-5'>STM32</b>标准库教程

    STM32F4芯片移植_LVGL7.11_UCOS移植代码工程

    STM32F4芯片移植_LVGL7.11_UCOS移植代码工程
    发表于 12-09 17:45 24次下载

    STM32移植的mx wifi源代码

    STM32移植的mx_wifi源代码,可方便移植到其他的STM32单片机上。
    发表于 09-26 16:35 2次下载

    AN4822_STM32L476xx、486xx和STM32L496xx、4A6xx微控制器之间的移植

    AN4822_STM32L476xx、486xx和STM32L496xx、4A6xx微控制器之间的移植
    发表于 11-21 08:11 1次下载
    AN4822_<b class='flag-5'>STM32L</b>476xx、486xx和<b class='flag-5'>STM32L496</b>xx、4A6xx微控制器之间的<b class='flag-5'>移植</b>

    教程:ESP8266接入机智,成功实现代码移植

    本文主要以图文方式介绍了ESP8266接入机智,生成MCU代码,并成功移植代码,实现APP控制硬件设备的过程。操作步骤如下:1、将固件写入
    的头像 发表于 01-12 10:16 4848次阅读
    教程:ESP8266接入<b class='flag-5'>机智</b><b class='flag-5'>云</b>,成功实现<b class='flag-5'>代码</b><b class='flag-5'>移植</b>

    基于物联网的远程温湿度监测系统(3)机智代码移植

    “创建云端产品,烧录Gagent”,“DHT11驱动的编写”。本文主要介绍,机智代码工程移植、采集数据上发、控制数据下拉、配置入网。机智
    的头像 发表于 04-27 11:02 954次阅读
    基于物联网的远程温湿度监测系统(3)<b class='flag-5'>机智</b><b class='flag-5'>云</b><b class='flag-5'>代码</b><b class='flag-5'>移植</b>