女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

基于STM32 HAL庫與標準庫的esp8266接入機智云方案(二)

機智云 ? 2025-05-28 18:02 ? 次閱讀


在《基于STM32HAL庫與標準庫的esp8266接入機智云方案(一)》中,我們詳細介紹了硬件連接和機智云客戶端的創建。本篇將重點講解如何下載代碼、分析下載的代碼,并直接使用這些代碼連接機智云。同時,我們還將討論如何移植HAL庫和標準庫以實現與機智云的兼容,幫助開發者更高效地完成項目的云平臺接入。



代碼下載e2d86e6c-3baa-11f0-986f-92fbcf53809c.png


注意:此時手機app端的該設備為網頁端的虛擬設備僅僅是作為調試UI使用。之后移植完成代碼后,會與ESP8266連接,此時會出現一個新的設備信息來控制MCU,確認后,就可以去生成代碼了。





e2e3567e-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png


點擊MCU開發,選擇硬件平臺。


首先,確認項目的開發方式是標準庫還是HAL 庫,如果是標準庫,只能選擇其他平臺。我使用的是HAL庫,同時也是F1x的板子,所以我選擇F103C8。輸入PS碼后即可點擊生成項目代碼。生成后下載下來使用即可!





e2f62902-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png

后面如果需要加其他數據或者需要控制其他東西的話都是需要重新生成代碼的!



分析下載下來的代碼e2d86e6c-3baa-11f0-986f-92fbcf53809c.png


下載下來后我們先簡單觀察里面的代碼的基本功能和配置:我們打開下載下來的代碼如果是F103C8型號就是可以直接使用的,如果不是我后面也會詳細說移植步驟!


我們打開里面的CubeMX工程可以發現:使用機智云需要一個定時器ms級別的中斷和兩個串口,一個打印信息,一個連接esp8266,還有兩個按鍵(非必要),然后我們點開keil工程,查看main函數里面到底有什么,使用了什么:



/* Initialize interrupts */ MX_NVIC_Init();//中斷優先級配置 /* USER CODE BEGIN 2 */ timerInit();//開啟定時器中斷 uartInit();//開啟串口2接收中斷 userInit();//初始化數據(比如,LED) gizwitsInit();//機智云初始化 keyInit();//按鍵初始化
GIZWITS_LOG("MCU Init Success , SoftVersion = %s\r\n",SOFTWARE_VERSION);//打印數據 /* USER CODE END 2 */#ifdefOTA_ENABLE Pro_D2W_Ask_Module_Reboot();#endif /* Infinite loop */ /* USER CODE BEGIN WHILE */ while(1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ userHandle();//數據上傳 gizwitsHandle((dataPoint_t *)¤tDataPoint);//任務處理(比如:開關LED) } /* USER CODE END 3 */AI寫代碼


我們可以使用CH340連接串口1,esp8266連接串口2,查看按鍵的打印信息:


e30cd396-3baa-11f0-986f-92fbcf53809c.png


發現按鍵設置長短按,分別用來設置esp8266的工作模式,移植后的代碼的串口發送函數已經包裝成了GIZWITS_LOG


想要熟悉使用機智云代碼就必須會使用兩個函數:


userHandle();//數據上傳

gizwitsHandle((dataPoint_t *)¤tDataPoint);//任務處理(比如:開關LED)

AI寫代碼


userHandle();//數據上傳






e3181864-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png

gizwitsHandle((dataPoint_t *)¤tDataPoint);//任務處理(比如:開關LED):點擊跳轉定義





e32b9736-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png

點擊進入箭頭這個函數:





e33cef72-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png


基本了解了代碼的最基本的功能后,后續移植也會更得心應手。


直接使用下載下來的代碼e2d86e6c-3baa-11f0-986f-92fbcf53809c.png


4.1、修改代碼點亮LED


下載的代碼中只定義了一個定時器、兩個串口、兩個按鍵,其他就沒有配置了,我們這里自己個他配置一個LED的GPIO口,用于模擬燈:


修改1:





e3532ee0-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png


staticvoidMX_GPIO_Init(void){ GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); /*Configure GPIO pin : KEY1_Pin */ GPIO_InitStruct.Pin=KEY1_Pin; GPIO_InitStruct.Mode=GPIO_MODE_INPUT; GPIO_InitStruct.Pull=GPIO_PULLUP; HAL_GPIO_Init(KEY1_GPIO_Port, &GPIO_InitStruct); /*Configure GPIO pin : KEY2_Pin */ GPIO_InitStruct.Pin=KEY2_Pin; GPIO_InitStruct.Mode=GPIO_MODE_INPUT; GPIO_InitStruct.Pull=GPIO_PULLUP; HAL_GPIO_Init(KEY2_GPIO_Port, &GPIO_InitStruct);
//自己添加的GPIO口初始化,用于驅動LED GPIO_InitStruct.Pin=GPIO_PIN_9; GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull=GPIO_PULLUP; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);}AI寫代碼


修改2:





e33cef72-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png



連接機智云平臺

e2d86e6c-3baa-11f0-986f-92fbcf53809c.png


然后按照要求連接號硬件和LED,上電試著連接機智云,先長按Key2進入airlink模式,然后使用手機打開機智云點擊右上角的+,然后點擊一鍵配網

等待配對成功后,就可以使用機智云控制LED開關了。





e387b4e4-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png


e3982a86-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png

連接機智云串口打印信息





e3af84d8-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png



HAL庫移植機智云e2d86e6c-3baa-11f0-986f-92fbcf53809c.png


前面我們已經熟悉了下載的代碼的最基本需求:一個串口打印信息,一個串口連接esp8266,一個定時器ms級別中斷,兩個按鍵(非必要),那么我們進行移植之前就得先得到一個已經配置好的keil工程



Keil工程的生成e2d86e6c-3baa-11f0-986f-92fbcf53809c.png


前面我們已經熟悉了機智云代碼的最基本的需求,所以我們移植之前的需要得到一個符合條件的Keil工程,一個串口打印信息(串口1,115200bits/s),一個串口連接esp8266(串口2,9600bits/s),一個定時器實現ms級別中斷(定時器2),兩個按鍵(非必須),需要移植的代碼中配置好的就是串口1、串口2,定時器2,如果我們想要使用其他的外設,我們就需要修改機智云代碼中的句柄,比如我們想要串口1連接esp8266,串口2打印信息,定時器3實現中斷,我們在機智云代碼中需要的修改的地方:huart1和huart2互換地方,htim2修改為htim3,以此類推。


我們這里就不隨便換他的外設配置了,就按照它的來配置,最快把這個機智云物聯網平臺使用起來:





e3cda008-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png

打開外部高速時鐘





e3dc9144-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png

配置時鐘頻率:





e3efb936-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png

配置定時器二:





e4072102-3baa-11f0-986f-92fbcf53809c.jpge2d86e6c-3baa-11f0-986f-92fbcf53809c.png

別忘記了打開定時器中斷:





e4164a7e-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png

配置串口1負責打印信息(115200bits/s):





e424d2e2-3baa-11f0-986f-92fbcf53809c.jpge2d86e6c-3baa-11f0-986f-92fbcf53809c.png

配置串口二(9600bits/s):





e433c040-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png

一樣別忘記打開中斷:





e446381a-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png

配置點燈GPIO口:





e45a87c0-3baa-11f0-986f-92fbcf53809c.jpge2d86e6c-3baa-11f0-986f-92fbcf53809c.png

最后生成工程即可:





e46cb896-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png


e4878be4-3baa-11f0-986f-92fbcf53809c.pnge2d86e6c-3baa-11f0-986f-92fbcf53809c.png


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

    關注

    2290

    文章

    11017

    瀏覽量

    362466
  • 機智云
    +關注

    關注

    3

    文章

    609

    瀏覽量

    26747
  • HAL
    HAL
    +關注

    關注

    2

    文章

    72

    瀏覽量

    12986
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    HAL每天一例】第063例:WIFI-ESP8266

    /1i574oPv 密碼:r3s3(硬石YS-F1Pro開發板HAL例程持續更新\1. 軟件設計之基本裸機例程(HAL版本)\YSF1-064. WIFI-
    發表于 07-07 09:03

    機智自動生成工程移植STM32CubeMX

    ESP8266-12F);3.USB轉TTL模塊一個,串口調試用;軟件工具為:1.STM32CubeMX V4.16.1;2.機智自助開發平臺;3.串口調試助手;4 . Keil
    發表于 02-07 16:59

    ESP8266-12F模塊接入案例

    串口調試助手驗證該模塊和機智服務器的通信是否OK。示例:附件及詳細文檔請到機智社區搜索“ESP8266-12F模塊無線
    發表于 02-20 16:49

    如何移植STM32固件

    機智官方生成的MCU代碼(hal)移植為STM32標準
    發表于 11-11 06:24

    STM32F103+ESP8266使用工程模板接入機智的過程

    正點原子STM32mini開發板+ESP8266接入機智博主是一位剛剛接觸STM32的小白,在
    發表于 02-14 07:47

    基于STM32esp8266機智app聯網總結

    背景是有一個成熟的STM32機智項目代碼,記錄一下成功應用的過程。第一步:用ttl轉u***串口給esp8266燒錄機智
    發表于 04-25 13:40

    機智ESP8266模組固件資料下載

    機智ESP8266模組固件
    發表于 04-23 15:55 ?67次下載
    <b class='flag-5'>機智</b><b class='flag-5'>云</b><b class='flag-5'>ESP8266</b>模組固件資料下載

    從5方面描述STM32F407+ESP8266連接機智過程

    由于本次使用的ESP8266是原來機智代產品上的,可能正常聯上機智,故沒有給
    的頭像 發表于 06-21 10:06 ?1.2w次閱讀

    ESP8266系列封裝資源下載

    ESP8266系列封裝資源下載
    發表于 05-20 16:04 ?0次下載

    ESP8266 PCB的模塊封裝下載

    ESP8266 PCB的模塊封裝下載
    發表于 10-28 14:50 ?181次下載

    機智官方生成的MCU代碼(hal)移植為STM32標準教程

    機智官方生成的MCU代碼(hal)移植為STM32標準
    發表于 11-06 09:51 ?15次下載
    <b class='flag-5'>機智</b><b class='flag-5'>云</b>官方生成的MCU代碼(<b class='flag-5'>hal</b><b class='flag-5'>庫</b>)移植為<b class='flag-5'>STM32</b><b class='flag-5'>標準</b><b class='flag-5'>庫</b>教程

    ESP8266接入bl

    ESP8266接入bl
    發表于 12-08 13:36 ?10次下載
    【<b class='flag-5'>ESP8266</b>】<b class='flag-5'>接入</b>bl

    正點原子STM32F103+ESP8266使用工程模板接入機智的詳細步驟

    正點原子STM32mini開發板+ESP8266接入機智博主是一位剛剛接觸STM32的小白,在
    發表于 12-08 20:21 ?16次下載
    正點原子<b class='flag-5'>STM32F103+ESP8266</b>使用工程模板<b class='flag-5'>接入</b><b class='flag-5'>機智</b><b class='flag-5'>云</b>的詳細步驟

    教程:ESP8266接入機智,成功實現代碼移植

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

    基于STM32 HAL標準ESP8266接入機智方案(一)

    最近在項目中需要進行物聯網平臺對接,之前我找到了一些資料,發現機智是一個不錯的平臺。機智的資料豐富,且操作簡便,可以根據MCU自動生成
    的頭像 發表于 05-28 18:02 ?144次閱讀
    基于<b class='flag-5'>STM32</b> <b class='flag-5'>HAL</b><b class='flag-5'>庫</b>與<b class='flag-5'>標準</b><b class='flag-5'>庫</b>的<b class='flag-5'>ESP8266</b><b class='flag-5'>接入</b><b class='flag-5'>機智</b><b class='flag-5'>云</b><b class='flag-5'>方案</b>(一)