色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

嵌入式開發:如何使用機智云+STM32F407+ESP8266+freeRTOS設計

9GxC_IoTMaker ? 來源:CSDN技術社區 ? 作者:霽雪寒霄 ? 2021-02-14 11:39 ? 次閱讀

前言

隨著物聯網的發展,未來的嵌入式產品必然朝著更加智能化、場景多樣化、實時性更高等趨勢發展,要處理好這些任務時,一個好的RTOS少不了。對于嵌入式開發者來說,了解和學習一個RTOS也是必要項之一,上手簡單、及時性和可靠性高的FreeRTOS是最佳選擇,和對開發者友好、物聯網開發平臺機智云配合,剛好滿足了我對智能化開發的需求。 下面,我將從基礎入手,來講講使用機智云+STM32F407+ESP8266+freeRTOS的設計,分別定義了GPIO輸入輸出,PWM輸入輸出。(本文由機智云開發者發表于CSDN,ID號:霽雪寒霄)

01 WiFi模塊燒錄GAgent 1.1 在機智云官網上下載固件,下載好的固件如圖1-1所示。

2c7f0cf4-5818-11eb-8b86-12bb97331649.png

1.2 在樂鑫官網下載ESP8266的燒寫工具。其中第一欄選擇燒寫的固件文件(32位含有combine的文件),并勾選前面的方框,起始地址填0,CrystalFreq選擇26M,SPI SPEED選擇40MHz,SPI MODE選擇DOUT,FLASH SIZE選擇32Mbit-C1。如圖1-2所示。

2d66cc74-5818-11eb-8b86-12bb97331649.png


1.3 按照圖1-3連接電路。點擊燒寫軟件的START,會出現“等待上電同步”字樣,點擊KEY1觸發后,會顯示下載中,知道出現“Finish”字樣,表示固件燒寫成功。

2d919148-5818-11eb-8b86-12bb97331649.png

02 創建產品及數據點 2.1 進入機智云官網,注冊登錄后進入開發者中心,可以看到如圖2-1所示界面。

2dd50860-5818-11eb-8b86-12bb97331649.png

2.2 點擊創建產品,在創建界面設定好產品名稱,選擇WIFI/移動網絡方案。選擇通訊方式為WIFI,數據傳輸方式為定長。如圖2-2所示。

2e405df4-5818-11eb-8b86-12bb97331649.png


2.3 創建完成后,點擊“數據點”,可以新建不同類型的數據點,如圖2-3所示,該處新建了16個不同的數據點。

2e99e32e-5818-11eb-8b86-12bb97331649.png

03 使用機智云串口工具配置WiFi模塊 3.1 下載機智云串口調試助手并解壓,將WIFI模塊與USB轉TTL相連(WIFI模塊的TX連TTL的RX,RX連TTL的TX,VCC一定得接3.3V),插上計算機USB接口后,打開機智云串口調試助手,選擇“模擬V4MCU”,如圖3-1所示。

2efb83a4-5818-11eb-8b86-12bb97331649.png


3.2 進入剛創建機智云產品中,點擊“基本信息”后,獲取到Product Key和Product Secret,如圖3-2-1所示。將Product Key和Product Secret輸入機智云串口調試助手,并點擊保存,會彈出如圖3-2-2的窗口,且右側會顯示我們定義的數據點列表。

2f235ec4-5818-11eb-8b86-12bb97331649.png

30234de8-5818-11eb-8b86-12bb97331649.png


3.3 選擇好USB轉TTL的串口,并點擊“打開串口”,WIFI模塊會自動詢問,如圖3-3所示。

30d5a33a-5818-11eb-8b86-12bb97331649.png


3.4 打開“指令界面”,點擊AirLink后,接收界面會出現如圖3-4類似的數據,代表WIFI模塊完好。

3168f82e-5818-11eb-8b86-12bb97331649.png


3.5 進入機智云手機App,注冊登錄后,點擊右上角“+”號,選擇“一鍵配置”,輸入手機連接的WIFI的SSID和密碼(此時須保證調試的計算機與手機連接的是同一WIFI,且最好使用路由器),點擊“下一步”,選擇“樂鑫”,點擊 “確定”,再次點擊機智云串口調試助手指令界面的“AirLink”,再點擊手機App上的“我已完成上述操作”,進入“搜索并連接設備”,具體流程如圖3-5-1,3-5-2所示。

3193b582-5818-11eb-8b86-12bb97331649.png

31b2b702-5818-11eb-8b86-12bb97331649.png


3.6 點擊搜索到的設備,在手機App上控制數據點,可以看到機智云串口調試助手數據點的值跟隨變化(如圖3-6-1,3-6-2所示),則代表WIFI模塊配置完成。

322608ba-5818-11eb-8b86-12bb97331649.png

324f2560-5818-11eb-8b86-12bb97331649.png

04 配置MCU代碼 實現WIFI與MCU的通信協議(可使用機智云MCU代碼生成),配置Cube mx并生成代碼。
4.1 進入機智云網站產品頁面,點擊MCU開發,硬件方案選擇“獨立MCU方案”,硬件平臺選擇“STM32F407x”,并在Product Secret處輸入該產品的Product Secret,點擊生成代碼包,如圖4-1所示。

32ad7700-5818-11eb-8b86-12bb97331649.png


4.2 稍等片刻待代碼包生成,下載并解壓,如圖4-2所示。

32fd3b32-5818-11eb-8b86-12bb97331649.png


4.3 由于在該實驗中我們使用的是STM32F407VGT6,而機智云生成代碼的MCU為STM32F407ZGT6,故我們需要移植一下,首先打開Cube mx新建一個項目,選擇STM32F407VG(如圖4-3所示),雙擊創建項目。

33700c7a-5818-11eb-8b86-12bb97331649.png


4.4 點擊File->Import Project,點擊“…”并選擇剛才機智云生成的項目文件中的ioc文件(如圖4-4-1所示),點擊“OK”后,直到出現圖4-4-2所示窗口,點擊“Close”,表示導入成功,導入后的引腳配置如圖4-4-3所示。

35553592-5818-11eb-8b86-12bb97331649.png

35f15332-5818-11eb-8b86-12bb97331649.png

3670048e-5818-11eb-8b86-12bb97331649.png


4.5 首先配置SYS,Timebase Source選擇TIM14,如圖4-5-1所示。然后配置除了KEY1,KEY2的GPIO(KEY1,KEY2已經自動生成),如圖4-5-2所示。

37085dec-5818-11eb-8b86-12bb97331649.png

377a268e-5818-11eb-8b86-12bb97331649.png


4.6 配置Timers,TIM2是項目生成時自動配置,所以不用配置,配置TIM4時,將Clock Source選擇為Internal Clock。TIM4的Channel 1-Channel 4為PWM輸出(如圖4-6-1),該實驗中配置的引腳為PB6-PB9,在下方的Configuration中的Parameter Settings中配置如圖4-6-2所示,其他地方使用默認即可。

37ad8bbe-5818-11eb-8b86-12bb97331649.png

37daef1e-5818-11eb-8b86-12bb97331649.png

4.7 再配置ADC,勾選IN4-IN7(對應引腳為PA4-PA7),如圖4-7-1所示。然后在下方Configuration中DMA Setting,點擊“Add”,出現如圖4-7-2所示界面,選擇ADC1,并配置成如圖4-7-3所示, Parameter Settings中配置如圖4-7-4所示,其他不用配置,保持默認即可,值得注意的是,該處使用到了TIM8,TIM8的Mode中Clock Source選擇為Internal Clock,TIM8的Configuration配置如圖4-7-5所示。

380753c4-5818-11eb-8b86-12bb97331649.png

3864c0ea-5818-11eb-8b86-12bb97331649.png

38af9002-5818-11eb-8b86-12bb97331649.png

38f82b1e-5818-11eb-8b86-12bb97331649.png

3a0a1616-5818-11eb-8b86-12bb97331649.png


4.8 點擊System Core中的NVIC,配置優先級如圖4-8-1所示,Code generation配置如圖4-8-2所示。

3a5dcc02-5818-11eb-8b86-12bb97331649.png

3a8b981c-5818-11eb-8b86-12bb97331649.png


4.9 點擊Middleware中的FREERTOS,interface選擇CMSIS_V1(如圖4-9-1所示),在下方Tasks and Queues并創建以下6個Task,如圖4-9-2所示。

3afbf940-5818-11eb-8b86-12bb97331649.png

3b4083ee-5818-11eb-8b86-12bb97331649.png

05 編寫外設驅動程序 編寫外設驅動程序,直至手機App能與MCU建立通信,并能控制傳感器外設。
5.1 打開keil5,在main.c中找到HAL_TIM_PeriodElapsedCallback函數,將整個函數注釋掉,然后在gizwits_product.c文件中同樣可以找到同名HAL_TIM_PeriodElapsedCallback函數,將剛才注釋函數的函數體內容放入其中,如圖5-1-1,5-1-2所示。

3bc244c4-5818-11eb-8b86-12bb97331649.png

3c03e3a2-5818-11eb-8b86-12bb97331649.png


5.2 將main.c中while(1)中內容剪切放入創建的StartGizwitsHandleTask任務中,用于處理數據上行下發,如圖5-2-1,5-2-2所示。

3cb47618-5818-11eb-8b86-12bb97331649.png

3cf770ee-5818-11eb-8b86-12bb97331649.png


5.3 將StartSysInitTask函數中for循環內容改為vTaskDelete(NULL),如圖5-3所示。

3d20c872-5818-11eb-8b86-12bb97331649.png


5.4 在gizwits_product.h文件中頭文件導入處添加(如圖5-4-1所示)“#include“smsis_os.h””,并添加如圖5-4-2所示內容。

3d6ad9f8-5818-11eb-8b86-12bb97331649.png

3db90da8-5818-11eb-8b86-12bb97331649.png


5.5 在common.h中創建聯合體,如圖5-5-1所示,其中高8位用以區別GPIO和PWM,次高8位用來區別引腳,后16為存入數值。在函數gizwitsEventProcess中,for循環外聲明聯合體(如圖5-5-2所示),for循環中switch—case語句中,注釋掉if—else判斷,對聯合體變量賦值,并利用通知將該聯合體發送出去,如圖5-5-3所示(個例)。

3e4d715a-5818-11eb-8b86-12bb97331649.png

3ef72ab0-5818-11eb-8b86-12bb97331649.png

3f5c55a2-5818-11eb-8b86-12bb97331649.png


5.6 在StartGPIO_OutputTask函數中,在for循環外添加如圖5-6-1的聲明代碼,在for循環內,刪除原先所有代碼,添加如圖5-6-2所示代碼,本圖只舉case為1的情況,添加后可對GPIO進行開關操作。

3fcd8b1e-5818-11eb-8b86-12bb97331649.png

400e1aa8-5818-11eb-8b86-12bb97331649.png


5.7 在StartPWM_OutputTask函數中,需要開啟PWM通道,并需要先將CCR置為0(在for循環外,如圖5-7-1所示),并就通知內容的不同,做不同的動作(在for循環內),添加代碼部分如圖5-7-2所示。

4061a204-5818-11eb-8b86-12bb97331649.png

40d3341e-5818-11eb-8b86-12bb97331649.png


5.8 在StartGPIO_InputTask函數中,直接利用HAL_GPIO_ReadPin讀取GPIO狀態,并存入數據點結構體中,如圖5-8-1所示。在StartADC_inputTask函數中,需要先開啟DMA,其中adc_result_buf為定義的一個長度為4的數組,添加代碼如圖5-8-2所示。

415b5db2-5818-11eb-8b86-12bb97331649.png

4192e728-5818-11eb-8b86-12bb97331649.png


5.9 將main.c中的如下代碼剪切(如圖5-9-1所示)到StartSysInitTask函數中(如圖5-9-2所示)。

42767a56-5818-11eb-8b86-12bb97331649.png

43001522-5818-11eb-8b86-12bb97331649.png

06 檢測 至此,兩類輸入/輸出代碼完成,可以根據不同用途添加代碼,在這里我用到了一個LED檢測了一下。
6.1 手機上打開機智云App,控制舵機轉動和LED亮滅。如下圖所示。

463f375e-5818-11eb-8b86-12bb97331649.png

責任編輯:PSY

原文標題:嵌入式開發必備項:用FreeRTOS+機智云開發智能設備

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

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

    關注

    5086

    文章

    19142

    瀏覽量

    305979
  • RTOS
    +關注

    關注

    22

    文章

    815

    瀏覽量

    119708
  • GPIO
    +關注

    關注

    16

    文章

    1205

    瀏覽量

    52163
  • 機智云
    +關注

    關注

    2

    文章

    590

    瀏覽量

    26433

原文標題:嵌入式開發必備項:用FreeRTOS+機智云開發智能設備

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

收藏 人收藏

    評論

    相關推薦

    STM32F407機智開發esp8266固件燒寫一直不成功

    按照STM32F407 機智開發手冊上的實驗步驟,板子和esp8266連接燒寫固件,一直失敗,求指導
    發表于 05-06 23:10

    嵌入式開發必備項:用FreeRTOS+STM32F4+機智開發智能設備

    +STM32F407+ESP8266+freeRTOS的設計,分別定義了GPIO輸入輸出,PWM輸入輸出。實現步驟如下:WIFI模塊燒錄GAgent。1.1 在機智官網上下載固件,下載好的固件如圖1-1所示。1.2 在樂鑫官網
    發表于 01-15 14:12

    STM32F407ZGT6+esp8266軟件APP硬件組成

    要求:通過手機上的機智通用APP,點亮開發板載LED0、LED1摘要硬件組成:STM32F407ZGT6+esp8266(樂鑫)軟件APP:機智
    發表于 08-05 07:06

    VScode嵌入式開發ESP8266詳解

    VScode嵌入式開發ESP32以及ESP8266入門1.適用與有部分C語言的開發者或者學生學習ESP系列的
    發表于 11-08 06:12

    自動測量系統STM32F103C8+ESP8266+DHT22的相關資料分享

    目錄STM32嵌入式開發筆記——自動測量系統STM32F103C8+ESP8266+DHT22一、 系統功能與原理二、 系統硬件需求三、 系統模塊介紹與設置Stm32F103C8T6
    發表于 12-21 07:49

    機智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是原來機智二代產品上的,可能正常聯上機智,故沒有給ESP8266
    的頭像 發表于 06-21 10:06 ?1.2w次閱讀

    ST意法半導體與機智攜手打造的物聯網開源方案DIY數字儀表

    MCU設備端基于ST提供的固定嵌入式開發板進行開發,ST提供最新板卡及開發資源,板卡采用雙MCU:STM32G0和STM32F7,搭載最新G
    的頭像 發表于 02-04 14:55 ?3193次閱讀

    機智Arduino與ESP8266 ESP12-F之間的連接

    這些天在琢磨ESP8266 ESP12-F接入機智的方法,試了很多坑。比如ESP12-F與arduino 之間的接線問題,找了好多資料。其
    的頭像 發表于 05-25 16:41 ?5837次閱讀
    <b class='flag-5'>機智</b><b class='flag-5'>云</b>Arduino與<b class='flag-5'>ESP8266</b> <b class='flag-5'>ESP12-F</b>之間的連接

    基于FreeRTOS嵌入式臺控制系統設計

    基于FreeRTOS嵌入式臺控制系統設計(嵌入式開發要學單片機嗎)-基于FreeRTOS嵌入式
    發表于 07-30 11:57 ?19次下載
    基于<b class='flag-5'>FreeRTOS</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>云</b>臺控制系統設計

    嵌入式開發-WIFI模塊-ESP8266使用詳細介紹

    ESP8266使用詳細介紹目錄ESP8266使用詳細介紹1.工具準備2.簡介3.模式介紹4.具體代碼5.嵌入式開發參考1.工具準備串口助手:鏈接:https://pan.baidu.com/s
    發表于 11-02 18:21 ?85次下載
    <b class='flag-5'>嵌入式開發</b>-WIFI模塊-<b class='flag-5'>ESP8266</b>使用詳細介紹

    VScode嵌入式開發ESP32以及ESP8266入門

    VScode嵌入式開發ESP32以及ESP8266入門1.適用與有部分C語言的開發者或者學生學習ESP系列的
    發表于 11-03 12:51 ?29次下載
    VScode<b class='flag-5'>嵌入式開發</b>之<b class='flag-5'>ESP</b>32以及<b class='flag-5'>ESP8266</b>入門

    STM32F4】STM32F407+ESP8266連接機智過程詳解

    要求:通過手機上的機智通用APP,點亮開發板載LED0、LED1摘要硬件組成:STM32F407ZGT6+esp8266(樂鑫)軟件APP:機智
    發表于 12-06 09:06 ?27次下載
    【<b class='flag-5'>STM32F</b>4】<b class='flag-5'>STM32F407+ESP8266</b>連接<b class='flag-5'>機智</b><b class='flag-5'>云</b>過程詳解

    STM32F103 + ESP8266機智開發常見問題集錦:入門者必讀!

    關于ESP8266模塊的選擇針對初學者,強烈建議選擇帶有串口的ESP8266開發板!這可以避免像我曾經遇到的燒錄固件失敗等問題。推薦直接購買已預裝機智
    的頭像 發表于 07-18 08:11 ?525次閱讀
    <b class='flag-5'>STM32F</b>103 + <b class='flag-5'>ESP8266</b>與<b class='flag-5'>機智</b><b class='flag-5'>云</b><b class='flag-5'>開發</b>常見問題集錦:入門者必讀!

    STM32 ESP8266阿里鏈接源碼

    stm32F103C8T6 ESP8266 物聯網電表 登錄阿里
    發表于 08-29 14:21 ?6次下載
    主站蜘蛛池模板: 野花视频在线观看免费| 免费乱理伦片在线观看夜| 亚洲精品午夜久久久伊人| 免费视频国产在线观看网站| 国产乱码伦人偷精品视频| 99re6热这里在线精品视频| 亚洲精品第二页| 人妻夜夜爽99麻豆AV| 久久资源365| 国产一区二区内射最近更新| 爱穿丝袜的麻麻3d漫画免费| 在线观看国产人视频免费中国| 特级黑人三人共一女| 捏奶动态图吃奶动态图q| 九九免费精品视频| 国产精品一区二区亚瑟不卡| 成年人在线免费观看视频网站 | 亚洲色欲H网在线观看| 色狼亚洲色图| 秋霞电影午夜伦午夜| 免费人成网站永久| 久久深夜视频| 精品亚洲大全| 果冻传媒视频在线观看完整版免费 | 久草免费视频在线观看| 国产传媒18精品A片在线观看 | 国产午夜精品片一区二区三区| 大中国免费视频大全在线观看| jealousvue成熟40岁| 99pao成人国产永久免费视频| 亚洲在线无码免费观看| 亚洲精品久久无码AV片WWW| 无遮挡h肉3d动漫在线观看| 日日踫夜夜爽无码久久| 日本高清色片| 人妻无码AV中文系列| 漂亮的保姆3中文版完整版| 欧美性猛交AAA片免费观看| 欧美人妇无码精品久久| 欧美内射AAAAAAXXXXX| 皮皮在线精品亚洲|