国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

如何把機智云生成的協議移植到STM32CubeMX生成的工程

9GxC_IoTMaker ? 來源:機智云開發者 ? 作者:機智云開發者 ? 2022-05-21 11:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

降低IoT開發門檻是機智云的不懈追求,所以機智云先后推出自助開發平臺、MCU代碼自動生成器、APP在線生成器、D3規則引擎等工具,不斷延伸物聯網生態,兼容不同系列的MCU產品,適配STM32cubemx,大大簡化 MCU 開發,降低門檻。

本文以程空氣質量監測應用為例,講解STM32接入機智云,通過STM32CubeMX 圖形化配置工具生成 MCU 工程,然后只需編寫幾個簡單的接口,即可將機智云自助生成的 STM32 方案工程里面的設備協議移植過來,這樣可以十分方便的將其它型號 STM32 微控制 器連上機智云,開發智能產品。

本文的讀者對象需要掌握的是:

1. 知道如何利用機智云自助開發生成 MCU 工程;2. 知道如何利用 STM32CubeMX 配置外設,生成 STM32 工程;3. 其它如開發工具 Keil,串口調試助手,STLINK,STM32CubeMX 等軟件的安裝使用教程這里不會贅述,新手可前往機智云開發者社區參考前期教程;

通過本文讀者將學會:

1.如何把機智云生成的協議移植到 STM32CubeMX 生成的工程; 2. ADC(模數轉換器)的使用; 3.GPIO 的使用; 4 . 非阻塞長短按鍵程序的移植; 5.簡單的物聯網應用開發流程;

先來張全家福:

51fc799c-d776-11ec-bce3-dac502259ad0.png

本文使用的硬件為:

52478b94-d776-11ec-bce3-dac502259ad0.png

軟件工具為:

1.STM32CubeMX V4.16.1; 2.機智云自助開發平臺; 3.串口調試助手; 4 . Keil V5.21.1.0;

01云端準備

我們這里演示的是一個簡單的遠程空氣質量監測應用,即微控制器采集空氣質量傳感器的數據,通過 WIFI 上報到機智云服務器,然后我們通過手機端 APP 即可遠程查看監測值。

我們先在機智云自助開發平臺建立數據點并生成一個 MCU 方案 STM32 工程。

注:機智云自助開發平臺 dev.gizwits.com

52801b8a-d776-11ec-bce3-dac502259ad0.png

通過對機智云的了解,我們知道,以下幾個是必須的:

配置 WIFI 模塊入網方法和觸發方式;

為了和生成的測試 APP 配合,我們一般選擇長按 Key2,RGB 綠燈亮起作為提示;

一個串口用于打印日志,方便調試,波特率沒有要求;另一個串口(實現中斷接收和寫)用于和 WIFI 模組通信,波特率要求為 9600,其它參數后文給出;

MCU 需要一個定時器,1ms 中斷作為心跳;上面紅色的文字是實現任意 MCU 通過 WIFI 模塊連接機智云所必須的。

02硬件準備

STM32L432 Nucleo-32 開發板是 Nucleo-32 系列開發板中最新的一款,它采用了STM32L432KC6 微控制器,除了具有良好的性能外,還支持超低功耗,板載 STlink 仿真器

52b7d822-d776-11ec-bce3-dac502259ad0.png

5339a456-d776-11ec-bce3-dac502259ad0.png

根據 STM32 Nucleo-32 原理圖,USART2(PA2 為 USART2_TX,PA15 為 USART2_RX)與板載仿真器連接,因此我們將它作為調試打印日志用。

535f8234-d776-11ec-bce3-dac502259ad0.png

這里 MQ-135 空氣質量傳感器 A0 輸出電壓值代表了空氣質量狀況,我們使用 ADC 來采集這個電壓值。

53b5b87a-d776-11ec-bce3-dac502259ad0.png

按鍵使用 2 個,由于 STM32 GPIO 內部可配置上拉輸入模式,因此無需額外的上拉電阻,我們使用最簡單的方法,GPIO 輸入檢測到低電平表示按鍵按下。三色 LED 為共陰極 LED,采用 GPIO 輸出高電平點亮的接線方式,限流電阻取 510 歐姆。

最終我們使用的外設如下:

54038e24-d776-11ec-bce3-dac502259ad0.png

03移植開始

3.1、首先來看 STM32CubeMX 的配置。

STM32CubeMX 生成的 PDF 報表詳細描述了工程的配置信息,限于篇幅這里就不貼圖了,

具體可查閱原文附件文檔:

Nucleo-L432KCU6-Gokit-STM32CubeMX 配置報表.pdf

原文地址:club.gizwits.com/thread-3876-1-1.html

這里解釋以下幾個關鍵的配置:

a) 選擇的微控制器型號為 STM32L432KCU6,這里大家根據實際選用的型號選擇即可;b) 本板卡沒有焊接外部高速晶振,因此選擇的是內部晶振,倍頻后,系統時鐘為80MHz,這里時鐘配置和我們后面配置定時器有關;c) 開啟定時器 7,將作為按鍵掃描用,配置為 1ms 中斷,定時器 7 時鐘為f=80MHz/( Prescaler+1),向上計數模式,計數到(ARR+1),進入中斷;d) 開啟定時器 6,將作為心跳用,配置為 1ms 中斷,定時器 6 時鐘為f=80MHz/( Prescaler+1),向上計數模式,計數到(ARR+1),進入中斷;e) 串口 2 選擇 Asynchronous 模式,將作為打印日志調試用。配置為 115200 波特率、8位數據、無校驗、1 位停止位,數據傳輸方向為發送和接收雙向(PS:其實這里只用到了 TX);f) 串口 1 選擇 Asynchronous 模式,將作為和 WIFI 模組通信用。參數需要符合機智云串口通信協議規定:即 9600 波特率、8 位數據、無校驗、1 位停止位;另外和 WIFI 模組通信的串口 1 需要配置為中斷接收;g) PB3 是板卡上的翠綠色 LED,給它添加標簽 LED3;h) PB0 和 PA12 是連接了按鍵,配置為上拉輸入模式,給它添加標簽 Key1,Key2; i) 開啟模數轉換器 ADC1,通道 5 對應的 GPIO 是 PA0,配置為 Analog mode 并開啟DMA 傳輸,傳輸方向是外設到內存且地址不自增,字長為 word;

3.2.工程文件的添加和修改

工程文件的添加和修改內容主要是:

按鍵驅動的移植;1ms 定時心跳的移植;串口讀寫的移植;工程框架的移植;

移植步驟參考:club.gizwits.com/thread-3641-1-1.html

下面簡單解釋下應用程序部分,即 ADC DMA 方式采集模擬電壓信號

54509cbe-d776-11ec-bce3-dac502259ad0.png

我們在 main.c 文件定義全局變量 ADC_ConvertedValue 存放 ADC 數據寄存器讀取值,ADC_ConvertedValueLocal 為換算的電壓值,由于參考電壓為 3.3V,ADC 精度為 12bit,

計算公式如下:

ADC_ConvertedValueLocal =ADC_ConvertedValue)*3.3/4095;

54b8b204-d776-11ec-bce3-dac502259ad0.png

初始化完成后調用 HAL_ADC_Start_DMA()啟動 ADC,使用 ADC 的好處是無需 CPU干預,減少 CPU 負擔。

550a7c60-d776-11ec-bce3-dac502259ad0.png

在 main.c 里定義一個 ADC 轉換完成回調函數,里面重新啟動 ADC 轉換。

5595ba64-d776-11ec-bce3-dac502259ad0.png

在 userHandle()接口里面把 ADC 采集的數值賦值給 airQuality 字段即可,當然這里可以加上一些數據處理,轉換代碼。

接下來就是調試了,關于如何在機智云自助開發平臺生成 STM32 工程和測試 APP 以及配置入網步驟,這里不再贅述,不清楚的請參考。

原文標題:3分鐘打造手機APP遠程空氣質量監測應用(STM32L432 Nucleo)

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

審核編輯:湯梓紅

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

    關注

    147

    文章

    18925

    瀏覽量

    398268
  • 機智云
    +關注

    關注

    3

    文章

    647

    瀏覽量

    27769
  • stm32cubemx
    +關注

    關注

    5

    文章

    290

    瀏覽量

    17363

原文標題:3分鐘打造手機APP遠程空氣質量監測應用(STM32L432 Nucleo)

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于 X-Cube-FreeRTOS_Heap4 和 CubeMX 生成 UCPD 項目介紹

    某客戶反映參考我們的文檔 AN5418《How to build a simple USB-PD sink applicationwith STM32CubeMX》去配置 FreeRTOS 生成
    發表于 01-04 11:18 ?0次下載

    STM32cubeMX生成配置rt-thread引用問題求解

    如題,本人小白,剛接觸rt-thread,STM32F1/4簡便配置起見利用cubeMX自動生成,測試幾次后直接蒙了,不知道哪些文件是rt-thread項目必須的,網上說法也五花八門,說代碼屏蔽某些
    發表于 09-12 07:21

    意法半導體:STM32CubeMX將不再集成STM32CubeIDE中

    從2025年11月發布的版本開始,我們將僅以 獨立 版本的形式提供 STM32CubeIDE 和 STM32CubeMXSTM32CubeMX將不再集成
    的頭像 發表于 09-01 17:18 ?3423次閱讀

    求助,關于STM32Cubemx 6.15版本生成工程的文件編碼的問題求解

    之前升級6.13和6.14版本的時候重新生成工程會將文件編碼強制轉換成UTF-8格式,導致中文注釋亂碼。但是在安裝文件夾下面的STM32CubeMX.l4j.ini文件里面添加一行
    發表于 07-29 12:31

    使用STM32CubeMX的時候創建的工程已經使用的板載資源如何去掉?

    在使用STM32CubeMX的時候創建的工程已經使用的板載資源如何去掉?在基于開發板進行工程創建的時候會把板載資源直接初始化,后面想要用不同的功能配置,如何初始配置去掉?
    發表于 07-22 07:13

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

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

    STM32機智連接實現步驟與技巧(下篇):機智代碼移植與優化

    在《STM32機智連接實現步驟與技巧(上篇)》中,我們介紹了硬件連接和通信協議配置。本篇將重點講解如何將機智
    的頭像 發表于 05-23 18:10 ?1115次閱讀
    <b class='flag-5'>STM32</b>與<b class='flag-5'>機智</b><b class='flag-5'>云</b>連接實現步驟與技巧(下篇):<b class='flag-5'>機智</b><b class='flag-5'>云</b>代碼<b class='flag-5'>移植</b>與優化

    請問使用CubeMX選擇芯片生成項目時如何選擇外部晶振?

    我從網上購入了STM32F103C8T6的核心板,板上有外部晶振。但我使用STM32CubeMX生成項目時,卻無法選擇外部晶振(如下圖)。請問要在哪里設置才能選擇外部晶振呀?
    發表于 04-22 09:17

    STM32CubeMX生成代碼就會覆蓋CMakeLists.txt文件,怎么解決?

    請教一下用STM32CubeMX生成代碼后,我自己加了一個頭文件和源文件,這些自己加的文件不是要配置CMakeLists.txt編譯么,但下載在用STM32CubeMX
    發表于 03-12 08:03

    stm32cubemx 6.13.0(win)版本生成代碼中文注釋亂碼怎么解決?

    stm32cubemx 6.13.0(win)版本生成代碼中文注釋亂碼
    發表于 03-11 07:10

    用TouchGFX生成工程,再使用STM32CubeMX生成MDK工程,下載時報錯是怎么回事?

    我在用TouchGFX生成工程,再使用STM32CubeMX生成MDK工程,編譯后沒有出錯,再是在下載時報錯: 如果不加載這個算法文件,
    發表于 03-11 06:50

    使用STM32CubeMX生成FreeRTOS的MDK工程,選擇AC6編譯器有很多錯誤,為什么?

    使用STM32CubeMX生成FreeRTOS的MDK工程,選擇AC5編譯器可以編譯成功,選擇AC6編譯器有很多錯誤,是STM32CubeMX生成
    發表于 03-11 06:32

    STM32CubeMX生成的FreeRTOS源碼格式如何優化?

    如圖,STM32CubeMX生成的FreeRTOS源碼格式有待優化,空格都是以箭頭的方式呈現,觀感很差。FreeRTOS官方下載的源碼則不存在這個問題,說明是STM32CubeMX生成
    發表于 03-10 08:04

    stm32cubemx按照配置重新生成工程,bsp_SysTick.c一直沒有呢?

    stm32cubemx按照配置重新生成工程,bsp_SysTick.c一直沒有呢
    發表于 03-10 07:44

    使用STM32CubeMX生成CMake工程中的FLASH.ld被更改怎么解決?

    使用STM32CubeMX生成CMake工程之后,對STM32xxxx_FLASH.ld進行了修改。然后再次使用STM32CubeMX
    發表于 03-10 06:52