0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于機(jī)智云移植STM32L496G代碼移植

機(jī)智云 ? 2024-09-20 08:05 ? 次閱讀

最近我拿到了STM32L496AGMCU,發(fā)現(xiàn)其擴(kuò)展版可以連接ESP-01S。我想嘗試將開發(fā)板連接到我們的機(jī)智云上,并根據(jù)機(jī)智云提供的文檔進(jìn)行程序移植。

STM32CubeMX移植機(jī)智云自動(dòng)生成代碼詳解 - 機(jī)智云

在移植的過程中遇到的一些問題,這里我將重構(gòu)一下,大致內(nèi)容跟文檔差不多,但是根據(jù)文檔的操作,會(huì)產(chǎn)生一些奇怪的報(bào)錯(cuò),這里可以根據(jù)我的操作做新的移植操作。

移植到其他平臺(tái)

1.創(chuàng)建STM32CubeMX 工程文件

在STM32CubeMX中直接選擇您所使用的 MCU(比如這里我們選擇STM32L496AGIx) ,如下:

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

點(diǎn)擊“Project → Setting”設(shè)置工程目錄位置以及相應(yīng)參數(shù)如下所示:

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

注:里編譯器選擇為Keil 5

導(dǎo)入機(jī)智云模板配置文件0ccc3a6e-76e4-11ef-bb4b-92fbcf53809c.png

因?yàn)闄C(jī)智云自動(dòng)生成的源碼中已經(jīng)包含了對(duì)應(yīng)平臺(tái)的STM32CubeMX工程配置文件,相關(guān)驅(qū)動(dòng)參數(shù)已經(jīng)是配置過的,為方便開發(fā)者將STM32的源碼移植到其他的平臺(tái),我們可以使用STM32CubeMX的配置文件導(dǎo)入功能,將STM32F103平臺(tái)的配置參數(shù)導(dǎo)入到STM32L496ZGT6平臺(tái),如下:

選擇File > Import Project

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

注:只有空白文檔才能導(dǎo)入到我們的工程里面

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

可以看到我們的對(duì)應(yīng)的引腳已經(jīng)配置上了

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

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

我們查看原理圖發(fā)現(xiàn)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

修改之后我們直接點(diǎn)擊創(chuàng)建工程

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

我們先關(guān)閉項(xiàng)目,之后我們打開之后對(duì)應(yīng)的文件夾。

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

此時(shí)的工程中只有STM32L496ZGT相關(guān)的驅(qū)動(dòng)代碼,若要使用機(jī)智云的聯(lián)網(wǎng)能力就需要移植相關(guān)的協(xié)議源碼(即前文介紹的已自動(dòng)生成的STM32F103工程中的三個(gè)文件:Gizwits、Hal、Utils

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

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

移植后(即從STM32F103中復(fù)制Gizwits、Hal、Utils到STM32L496AGIx下)如下

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

接下來我們?cè)赟TM32L496ZGT的keill5工程中添加如下的目錄結(jié)構(gòu):

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

同理加入相應(yīng)的編譯路徑:

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

接下來要修改編輯機(jī)智云的代碼,但移植文檔的時(shí)間為2017年左右的,其中機(jī)智云生成代碼會(huì)有所改變,接下來我是通過下載到的軟件包,將其中的代碼移植成功。因?yàn)榘凑瘴臋n的操作有些代碼與現(xiàn)在代碼包不匹配,所以會(huì)有所報(bào)錯(cuò)。

首先,為了適配對(duì)應(yīng)的平臺(tái)應(yīng)在gizwits_product.h / hal_key.h 中替換為對(duì)應(yīng)平臺(tái)的頭文件,例如:

將原來F103C8平臺(tái)的頭文件 #include “stm32f1xx_hal.h”** 替換為L(zhǎng)496ZGT平臺(tái)的 #include"stm32l4xx_hal.h"

注:可以在根目錄下的 Drivers\STM32F1xx_HAL_Driver\Inc 中找到對(duì)應(yīng)平臺(tái)的頭文件。接下來在main.c中添加與機(jī)智云協(xié)議處理相關(guān)的代碼:首先是引用的相關(guān)頭文件

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

長(zhǎng)短按按鍵回調(diào)函數(shù)的定義

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

直接在f103的代碼直接復(fù)制過來按鍵代碼(新版代碼邏輯有所改變)

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

· 接下來是對(duì)相關(guān)驅(qū)動(dòng)模塊以及機(jī)智云協(xié)議模塊的初始化

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

· 最后是在main函數(shù)中的循環(huán)處理函數(shù)調(diào)用:

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

其中我們需要將引入的頭文件.h的f103修改對(duì)應(yīng)的頭文件,這是多數(shù)報(bào)錯(cuò)的問題。

最后點(diǎn)擊編譯出現(xiàn)零錯(cuò)誤零警告

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

我們成功將機(jī)智云代碼移植過來,之后我們燒錄來驗(yàn)證一下程序是否能正常的執(zhí)行,其中有些代碼還需要修改,要根據(jù)自己的開發(fā)板的串口引腳進(jìn)行改變,之后我們會(huì)通過連接到機(jī)智云點(diǎn)亮小燈來驗(yàn)證串口代碼問題,大致基本移植可以完成。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2257

    文章

    10826

    瀏覽量

    352428
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4670

    瀏覽量

    67759
  • 機(jī)智云
    +關(guān)注

    關(guān)注

    2

    文章

    563

    瀏覽量

    26313
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32L496G QSPI在DMA模式一段時(shí)間clock會(huì)被拉成Low,可否改善?

    我使用STM32L496G,與這篇遇到相同的問題,\"每次讀取500個(gè)字節(jié)的數(shù)據(jù)的話,時(shí)鐘會(huì)出現(xiàn)8個(gè)連續(xù)的周期,然后時(shí)鐘被拉低了,過了很久再出現(xiàn)8個(gè)連續(xù)的周期\" ,不知道是否是DMA的關(guān)系,不知道有沒有方法可以不拉低Clock?
    發(fā)表于 04-15 07:21

    stm32cubemx5.0,stm32l496G怎么沒有touchgfx選項(xiàng)?

    最新版的stm32cubemx5.0,stm32l496G怎么沒有touchgfx選項(xiàng),
    發(fā)表于 04-23 07:04

    機(jī)智自動(dòng)生成工程移植STM32CubeMX

    的接口,即可將機(jī)智自助生成的STM32方案工程里面的設(shè)備協(xié)議移植過來,真正實(shí)現(xiàn)全程圖形化配置,傻瓜式開發(fā),這樣既可十分方便的將其它型號(hào)STM32
    發(fā)表于 02-07 16:59

    STM32CubeMX移植機(jī)智自動(dòng)生成代碼詳解

    的工程中只有STM32L496ZGT相關(guān)的驅(qū)動(dòng)代碼,若要使用機(jī)智的聯(lián)網(wǎng)能力就需要移植相關(guān)的協(xié)議源碼(即前文介紹的已自動(dòng)生成的
    發(fā)表于 12-28 13:50

    正點(diǎn)原子探索版STM32F407,接入機(jī)智代碼移植

    為了給自己的移植過程做一個(gè)記錄,特此寫下正點(diǎn)原子探索者STM32F497的移植過程。移植步驟在機(jī)智
    發(fā)表于 06-17 12:12

    移植機(jī)智代碼STM32F103

    二期移植機(jī)智代碼STM32F103系列在嗶站錄了兩期簡(jiǎn)單的視頻 ,歡迎大家指正不足,我也是剛剛開始做,還有很多不足,如果視頻中寫的有什么
    發(fā)表于 08-03 07:46

    如何移植STM32固件庫(kù)

    機(jī)智官方生成的MCU代碼(hal庫(kù))移植STM32標(biāo)準(zhǔn)庫(kù)教程手上剛好有STM32F103VC
    發(fā)表于 11-11 06:24

    怎樣去移植基于STM32f013c8t6的機(jī)智

    怎樣去移植基于STM32f013c8t6的機(jī)智呢?如何利用ESP8266燒錄機(jī)智固件呢?
    發(fā)表于 12-10 06:30

    介紹STM32L496G開發(fā)套件的特點(diǎn)及應(yīng)用

    STM32L496G套件介紹
    的頭像 發(fā)表于 07-03 03:37 ?4879次閱讀

    機(jī)智官方生成的MCU代碼(hal庫(kù))移植STM32標(biāo)準(zhǔn)庫(kù)教程

    機(jī)智官方生成的MCU代碼(hal庫(kù))移植STM32標(biāo)準(zhǔn)庫(kù)教程手上剛好有STM32F103VC
    發(fā)表于 11-06 09:51 ?15次下載
    <b class='flag-5'>機(jī)智</b><b class='flag-5'>云</b>官方生成的MCU<b class='flag-5'>代碼</b>(hal庫(kù))<b class='flag-5'>移植</b>為<b class='flag-5'>STM32</b>標(biāo)準(zhǔn)庫(kù)教程

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

    STM32F4芯片移植_LVGL7.11_UCOS移植代碼工程
    發(fā)表于 12-09 17:45 ?24次下載

    STM32移植的mx wifi源代碼

    STM32移植的mx_wifi源代碼,可方便移植到其他的STM32單片機(jī)上。
    發(fā)表于 09-26 16:35 ?2次下載

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

    AN4822_STM32L476xx、486xx和STM32L496xx、4A6xx微控制器之間的移植
    發(fā)表于 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接入機(jī)智,成功實(shí)現(xiàn)代碼移植

    本文主要以圖文方式介紹了ESP8266接入機(jī)智,生成MCU代碼,并成功移植代碼,實(shí)現(xiàn)APP控制硬件設(shè)備的過程。操作步驟如下:1、將固件寫入
    的頭像 發(fā)表于 01-12 10:16 ?4834次閱讀
    教程:ESP8266接入<b class='flag-5'>機(jī)智</b><b class='flag-5'>云</b>,成功實(shí)現(xiàn)<b class='flag-5'>代碼</b><b class='flag-5'>移植</b>

    基于物聯(lián)網(wǎng)的遠(yuǎn)程溫濕度監(jiān)測(cè)系統(tǒng)(3)機(jī)智代碼移植

    “創(chuàng)建云端產(chǎn)品,燒錄Gagent”,“DHT11驅(qū)動(dòng)的編寫”。本文主要介紹,機(jī)智代碼工程移植、采集數(shù)據(jù)上發(fā)、控制數(shù)據(jù)下拉、配置入網(wǎng)。機(jī)智
    的頭像 發(fā)表于 04-27 11:02 ?954次閱讀
    基于物聯(lián)網(wǎng)的遠(yuǎn)程溫濕度監(jiān)測(cè)系統(tǒng)(3)<b class='flag-5'>機(jī)智</b><b class='flag-5'>云</b><b class='flag-5'>代碼</b><b class='flag-5'>移植</b>