RM新时代网站-首页

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

正點原子STM32F407開發(fā)板的移植過程

9GxC_IoTMaker ? 來源:機智云開發(fā)者 ? 作者:機智云開發(fā)者 ? 2022-06-20 11:17 ? 次閱讀

在2017年機智云和正點原子聯(lián)袂發(fā)布正點原子接入機智云教程,提供了一整套基于STM32開發(fā)板的接入教程和實例源碼,從平臺配置到程序配置,為開發(fā)人員提供一種便捷的接入云平臺方案。

所有正點原子STM32開發(fā)板(除mini外)均具有ATK-Module接口,只需要把ATK-ESP8266模塊直接連接到該接口即可。mini開發(fā)板需要通過杜邦線鏈接。

換句話說,所有正點原子的開發(fā)板都可以輕松連云了,幾小時搞定遠程控制。

教程下載地址:http://pan.baidu.com/s/1geUdgJ5

df14498c-ef6c-11ec-ba43-dac502259ad0.png

df26bce8-ef6c-11ec-ba43-dac502259ad0.png

但是由于時間過長,手冊內(nèi)容中的Gizwits文件目錄和目前的機智云自動生成的代碼目錄有一定的差異,因此移植過程有了一些改變。

為了方便大家針對新版機智云的代碼進行移植,也為了給自己的移植過程做一個記錄,特此寫下正點原子探索者STM32F407的移植過程。


移植步驟

1、創(chuàng)建項目,定于數(shù)據(jù)點,生成MCU代碼包

先登陸機智云自助開發(fā)平臺dev.gizwits.com

創(chuàng)建智能項目

定義數(shù)據(jù)點

生成MCU代碼(選擇其他平臺)并下載

推薦使用最新的esp8266機智云GAgent固件

Gagent固件下載地址

download.gizwits.com/zh-cn/p/92/94

選擇生成其他平臺的代碼是標準庫

選擇F407平臺則生成的是HAL庫。

df41ad5a-ef6c-11ec-ba43-dac502259ad0.png


2.進行移植
打開MCU代碼包正點原子的移植代碼

df5f8a82-ef6c-11ec-ba43-dac502259ad0.png

可以看到如下文件路徑:

df704e76-ef6c-11ec-ba43-dac502259ad0.png

將我們第一步驟下載的“MCU代碼包”進行解壓縮,隨后將Gizwits文件夾和Utils文件夾復制到正點原子的移植代碼目錄中,提示覆蓋點擊確定即可。


df7ee4b8-ef6c-11ec-ba43-dac502259ad0.png


打開工程,將Utils文件夾添加到頭文件路徑中
df91ccf4-ef6c-11ec-ba43-dac502259ad0.png


在gizwits_product.c中加入led.h和usart3.h
    #include#include#include "gizwits_product.h"//下面兩個頭文件是我們后來加入的#include "led.h"#include "usart3.h"

修改dataPoint_t currentDataPoint為extern dataPoint_t currentDataPoint

    /** Current datapoint *///dataPoint_t currentDataPoint;extern dataPoint_t currentDataPoint;

找到以下代碼,并加入

    if(0x01 == currentDataPoint.valueLEDonoff){//user handle//下面一行是我們后加入的            LED1=0;//LED1亮}else{//user handle//下面一行是我們后加入的            LED1=1;//LED1滅            }

將main.c中的void userHandle(void)

    //數(shù)據(jù)采集void userHandle(void){//判斷當前LED1開關量if(LED1==0)currentDataPoint.valueLEDonoff = 1;else    currentDataPoint.valueLEDonoff = 0;}

剪切到gizwits_product.c中的對應位置

    //下面的void userHandle(void)是我們從main.c中剪切過來的//數(shù)據(jù)采集void userHandle(void){//判斷當前LED1開關量if(LED1==0)currentDataPoint.valueLEDonoff = 1;else    currentDataPoint.valueLEDonoff = 0;}

修改gizwits_product.c中的int32_t uartWrite(uint8_t *buf, uint32_t len)

    int32_t uartWrite(uint8_t *buf, uint32_t len){uint32_t i = 0;if(NULL == buf){return -1;}#ifdef PROTOCOL_DEBUGGIZWITS_LOG("MCU2WiFi[%4d:%4d]: ", gizGetTimerCount(), len);for(i=0; i"" div="" style="overflow-wrap: break-word; margin: 0px; padding: 0px; box-sizing: border-box;">{GIZWITS_LOG("%02x ", buf);}GIZWITS_LOG("
    ");#endiffor(i=0; i"" i="" style="overflow-wrap: break-word; margin: 0px; padding: 0px; box-sizing: border-box;">{//USART_SendData(UART, buf);//STM32 test demo//實現(xiàn)串口發(fā)送函數(shù),將buf發(fā)送到模組        USART_SendData(USART3,buf);while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET); //循環(huán)發(fā)送,直到發(fā)送完畢if(i >=2 && buf == 0xFF){//實現(xiàn)串口發(fā)送函數(shù),將0x55發(fā)送到模組        USART_SendData(USART3,0x55);while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET); //循環(huán)發(fā)送,直到發(fā)送完畢}}return len;}

在gizwits_product.c中的void mcuRestart(void);處加入如下代碼

    void mcuRestart(void){__set_FAULTMASK(1);//關閉所有中斷NVIC_SystemReset();//復位    }

在gizwits_product.h中加入void gizTimerMs(void);

    void userInit(void);void userHandle(void);void mcuRestart(void);//下面的一行是我們后面加入的void gizTimerMs(void);
至此,移植完成

3、編譯、調(diào)試
編譯下載到開發(fā)板即可。
dfa2e728-ef6c-11ec-ba43-dac502259ad0.png

按下KEY1,用機智云的手機App進行連接調(diào)試。
dfc567ee-ef6c-11ec-ba43-dac502259ad0.png

dfea845c-ef6c-11ec-ba43-dac502259ad0.png

4、演示效果

進入即可控制LED的亮滅。

e003ad1a-ef6c-11ec-ba43-dac502259ad0.png

原文標題:正點原子探索版STM32F407,接入機智云之代碼移植

文章出處:【微信公眾號:機智云開發(fā)者】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

審核編輯:湯梓紅



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

    關注

    1

    文章

    379

    瀏覽量

    28124
  • 開發(fā)板
    +關注

    關注

    25

    文章

    5032

    瀏覽量

    97371
  • STM32F407
    +關注

    關注

    15

    文章

    187

    瀏覽量

    29436
  • 機智云
    +關注

    關注

    2

    文章

    587

    瀏覽量

    26392
  • 正點原子
    +關注

    關注

    9

    文章

    27

    瀏覽量

    9907

原文標題:正點原子探索版STM32F407,接入機智云之代碼移植

文章出處:【微信號:IoTMaker,微信公眾號:機智云開發(fā)者】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    正點原子STM32H7R3開發(fā)套件試用體驗】4G聯(lián)網(wǎng)工業(yè)設備控制網(wǎng)關

    這次有幸參加 正點原子STM32H7R3開發(fā)套件 的評測,計劃使用 正點原子
    發(fā)表于 12-18 14:14

    正點原子STM32H7R3開發(fā)套件試用體驗】開發(fā)套件開箱報告

    套件 打開盒子,把開發(fā)套件,再和之前的STM32F103精英版做個對比: 上下對比,可以看到,兩套開發(fā)套件,是一脈相承的,都是開發(fā)板,電源,紅外遙控器。在盒子的底部,還有連接線。 可以
    發(fā)表于 12-12 00:54

    STM32F407 MCU使用SD NAND?不斷電初始化失效解決方案

    STM32F407微控制器單元(MCU)與SD NAND的結合提供了強大的存儲解決方案。然而,不斷電初始化失效問題可能會導致系統(tǒng)穩(wěn)定性和數(shù)據(jù)完整性受損。我們將STM32F407與SD NAND集成時可能遇到的初始化問題,并提供專業(yè)的解決方案。
    的頭像 發(fā)表于 12-11 10:51 ?302次閱讀
    <b class='flag-5'>STM32F407</b> MCU使用SD NAND?不斷電初始化失效解決方案

    正點原子fpga開發(fā)板不同型號

    正點原子作為國內(nèi)領先的FPGA開發(fā)板供應商,其產(chǎn)品線覆蓋了從入門級到高端應用的各個領域。這些開發(fā)板不僅適用于學術研究,還廣泛應用于工業(yè)控制、通信、圖像處理等多個領域。 1. 入門級
    的頭像 發(fā)表于 11-13 09:30 ?596次閱讀

    正點原子和野火開發(fā)板哪個好

    在嵌入式開發(fā)領域,F(xiàn)PGA開發(fā)板因其靈活性和可定制性而受到工程師的青睞。正點原子(ZYNQ)和野火(Yihui)是兩個知名的FPGA開發(fā)板
    的頭像 發(fā)表于 11-13 09:29 ?748次閱讀

    正點原子stm32開發(fā)板能用stlink嗎

    開發(fā)板概述 正點原子提供的STM32開發(fā)板涵蓋了從基礎到高級的多種型號,包括但不限于STM32F
    的頭像 發(fā)表于 11-13 09:21 ?516次閱讀

    stm32f407是否可以采用別的I/O口,與TFT液晶實現(xiàn)連接啊?

    新手求助:stm32f407與TFT液晶接口時,TFT液晶為并口(D0~D15等),stm32f407芯片必須使用FSMC—D0~FSMC—D15等接口與其連接嗎?看了一些開發(fā)板的原理圖,好像
    發(fā)表于 05-17 07:39

    使用STM32F407正點原子開發(fā)板作為客戶端,電腦作為服務器端時程序總是死在接收函數(shù)上是為什么?

    生成的工程可以ping通,使用STM32F407正點原子開發(fā)板作為客戶端,電腦作為服務器端時程序總是死在接收函數(shù)上,把接收函數(shù)屏蔽后程序正常也能于服務器連接上。請大神指教,是否是哪里
    發(fā)表于 04-29 06:54

    STM32F407開發(fā)板移植了LwIP TCP,在while(1)里或者接收到數(shù)據(jù)后就什么也發(fā)不出來的原因?

    STM32F407開發(fā)板移植了LwIP TCP,當我想做客戶端的時候,在初始化階段使用函數(shù)tcp_write()就可以發(fā)送出來數(shù)據(jù),但是,當在while(1)里或者接收到數(shù)據(jù)之后,在這兩個地方調(diào)用此函數(shù)時,就什么也發(fā)不出來,
    發(fā)表于 04-12 08:13

    STM32F407的程序移植STM32F103的芯片上面,需要修改哪些內(nèi)容?

    STM32F407的程序移植STM32F103的芯片上面,需要修改哪些內(nèi)容?
    發(fā)表于 04-10 07:38

    如何在STM32F407移植lwip?

    如題,使用rt-thread操作系統(tǒng),在STM32F407上如何移植lwip,下載了最新的rt-thread代碼,不知如何入手。 誰能幫幫我嗎,或者有沒有移植手冊發(fā)我看看。
    發(fā)表于 03-05 08:32

    STM32F407+PCM5102APWR+SD卡內(nèi)播放wav或mp3音樂如何實現(xiàn)?

    ,我們需要連接硬件組件。將STM32F407開發(fā)板的引腳連接到PCM5102APWR的相應引腳上。這些引腳包括I2S時鐘、I2S數(shù)據(jù)、I2S位時鐘、I2S幀同步、音頻時鐘和地線。使用適當?shù)倪B接線將
    的頭像 發(fā)表于 01-16 17:11 ?2727次閱讀

    stm32f407 double類型

    STM32F407是意法半導體(STMicroelectronics)推出的一款ARM Cortex-M4內(nèi)核的微控制器。它是針對智能電動車領域的實時操作、數(shù)字信號處理和高性能應用而設計的。在這
    的頭像 發(fā)表于 01-07 16:45 ?2992次閱讀

    stm32f407 LAN8720A速率調(diào)整

    STM32F407是一款基于ARM Cortex-M4內(nèi)核的高性能微控制器,而LAN8720A是一款高速以太網(wǎng)PHY芯片。它們的組合可以實現(xiàn)在STM32F407上使用以太網(wǎng)功能。 調(diào)整
    的頭像 發(fā)表于 01-05 13:54 ?3758次閱讀

    stm32f407浮點運算速度

    STM32F407 是 STMicroelectronics 公司推出的一款基于 ARM Cortex-M4 內(nèi)核的微控制器。它具有較強的處理能力和豐富的外設資源,在嵌入式系統(tǒng)中得到廣泛應用。該芯片
    的頭像 發(fā)表于 01-04 10:58 ?3346次閱讀
    RM新时代网站-首页