成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

STM32CubeMX學習教程之硬件I2C讀取光照度

tinylcy / 3465人閱讀

摘要:使用庫讀寫環(huán)境光照度傳感器本文將教大家如何快速使用庫讀取光照度數(shù)據(jù)。五實驗樣機測試展示通過之前配置好的面板,通過涂鴉智能進行配網(wǎng)實時采集光照度傳感器的數(shù)據(jù)。

使用STM32 HAL庫讀寫環(huán)境光照度傳感器(BH1750)

本文將教大家如何快速使用STM32HAL庫讀取光照度數(shù)據(jù)。

實現(xiàn)功能:通過App實時監(jiān)測光照度數(shù)據(jù)。

程序下載路徑:demo程序。

一.使用STM32CubeMX創(chuàng)建一個新工程

1.如下圖創(chuàng)建一個新工程:

2.如下圖選擇自己現(xiàn)有的STM32開發(fā)板進行開發(fā):

3.配置時鐘源

如果選擇使用外部高速時鐘(HSE),則需要在System Core中配置RCC;

如果使用默認內(nèi)部時鐘(HSI),這一步可以略過;

下面工程我使用的是內(nèi)部時鐘,因此這一步是不需要的。

4.配置串口

NUCLEO-L476RG板載ST-Link并且虛擬了一個串口,原理圖如下:

使PC的串口與USART2之間連接。(打印日志口,同時也作為程序下載口)

接下來開始如下圖配置USART2:

使用串口1和涂鴉模組WB3S通信(單片機和WB3S串口通信,采用透傳的模式),串口1配置如下圖所示:

5.配置IIC口

為了采集光照度數(shù)據(jù)(BH1750),單片機采用I2C協(xié)議和光照度模塊進行通信,采用I2C1,配置如下圖所示:

6.配置時鐘樹

STM32L4的最高主頻到80M,所以配置PLL,最后使HCLK=80Mhz即可:

7.生產(chǎn)工程設置

8.代碼生成設置

最后設置生成獨立的初始化文件:

9.生成代碼

點擊GENERATE CODE即可生成MDK-V5工程如下:

10.用KEIL5打開生成的代碼,然后開始添加自己要實現(xiàn)的功能函數(shù)。

二.BH1750驅(qū)動程序設計

1.硬件設計

BH1750 照度檢測模塊搭載一個BH1750FVI,BH1750FVI是兩線式串行總線接口(IIC)的16位數(shù)字輸出型環(huán)境光強度傳感器,利用它的高分辨率可以探測較大范圍內(nèi)的光照強度變化(1lx - 65535lx)。

  • BH1750的實物圖如下:

  • BH1750的原理圖如下:

管腳介紹

名稱VCCGNDSCLSDAADDR
功能描述3~5V供電參考地IIC時鐘線IIC數(shù)據(jù)線地址線

2.軟件設計

參考BH1750FVI數(shù)據(jù)手冊進行編程。

  • BH1750的器件地址由ADDR端口的高低電平?jīng)Q定。

  • 驅(qū)動程序底層使用 HAL 庫的 IIC 初始化文件,包含如下頭文件:

  • 發(fā)送命令的函數(shù)如下:

  • 接收光照強度數(shù)據(jù)的函數(shù)如下:

  • 根據(jù)數(shù)據(jù)手冊中給出的公式,編寫將從BH1750讀出的兩個字節(jié)數(shù)據(jù)轉(zhuǎn)換為對應強度值的函數(shù)(數(shù)據(jù)轉(zhuǎn)換函數(shù)):

驅(qū)動程序設計完成之后就可以開始進行聯(lián)網(wǎng)功能的設計了。

三.平臺產(chǎn)品創(chuàng)建

??進入涂鴉智能IoT平臺點擊“創(chuàng)建產(chǎn)品”。這里不用糾結(jié)產(chǎn)品品類的選擇,重點是為了拿到MCU-SDK文件,實際使用時可以根據(jù)具體的產(chǎn)品修改sdk內(nèi)部的pid即可適配自己的產(chǎn)品。

例如:點擊創(chuàng)建產(chǎn)品,選擇標準類目>電工>開關。(當時為了測試用,所以選擇一個標準類目,也可以在平臺上選擇其它品類去創(chuàng)建也是可以的)

  • 選擇自定義方案,輸入產(chǎn)品名稱,選擇通訊協(xié)議為WIFI+藍牙,點擊創(chuàng)建產(chǎn)品。

  • 根據(jù)要實現(xiàn)的設備功能,創(chuàng)建好DP功能點。

  • 創(chuàng)建好DP點之后,點擊設備面板,選擇自由配置面板,方便開發(fā)調(diào)試,也可以選擇其它的面板。

面板創(chuàng)建好之后,點擊硬件開發(fā),對接方式選擇“涂鴉標準模組MCU SDK開發(fā)”,模組選擇WB3S Wi-Fi&Bluetooth模組(在實際開發(fā)過程中可選擇手上已有的涂鴉模組即可),固件選擇通用固件。

四.MCU SDK移植

平臺產(chǎn)品創(chuàng)建完之后,我們會獲取到一個MCU SDK包,之后就可以快速移植到MCU了。

  • 在解壓后的文件夾中找到mcu_sdk相關源文件和頭文件,全部拷貝到我們創(chuàng)建好的工程模板里的MCU_SDK文件夾里;打開上面創(chuàng)建好的工程,將mcu_sdk的源文件添加進對應組里,同時添加include paths:

  • 點擊編譯,會崩出幾個error,接下來就需要按照出error的地方注釋提示一步步修改代碼。

  • uart_receive_input()為串口接收數(shù)據(jù)處理接口,只需將它放進串口中斷即可,這里我們以串口1作為與模組通訊串口,調(diào)試中把串口2作為日志口,首先在main函數(shù)中添加串口1和串口2初始化代碼,并使能接收中斷(接收使能中斷已在串口初始化函數(shù)中體現(xiàn)):

  • 然后在stm32l4xx_it.c文件中添加中斷處理函數(shù),然后包含 mcu_api.h文件并將uart_receive_input()接口添加進去,添加完成后,刪除error注釋即可:

  • 再來看下一個errror,由于我們上一步已經(jīng)通過中斷接收的形式實現(xiàn)了串口數(shù)據(jù)接收處理了,這個多字節(jié)處理我們可以不用,直接把error注釋刪除即可。

  • 下一個errror:

  • 按照提示將該接口放在main函數(shù)的while循環(huán)內(nèi)即可,別忘了在 main.c 中包含 wifi.h 頭文件。

  • 再來看下一個error:

  • 同樣的,按照提示將該函數(shù)放到main函數(shù)開頭部分即可。

  • 然后是串口發(fā)送相關:

  • 這里只需實現(xiàn)串口1的數(shù)據(jù)發(fā)送函數(shù)然后放進去即可。使用STM32 HAL庫里面的串口單字節(jié)發(fā)送函數(shù),以阻塞方式發(fā)送數(shù)據(jù)量,添加代碼如下:

  • 然后是DP數(shù)據(jù)點上報相關的:

這里我們可以直接注釋掉error提示,在實際開發(fā)過程中再實現(xiàn)該功能即可。

  • 以下在主函數(shù)里面,添加光照度上報的數(shù)據(jù)。這里可以改成自己想要上報傳感器的數(shù)據(jù)。

  • 最后是產(chǎn)測相關的:

一般開發(fā)者不涉及生產(chǎn)測試的話直接刪除注釋不用管就行。

下圖這個紅色標出的函數(shù)是進行配網(wǎng)的,通過NUCLEO-L476開發(fā)板上的用戶按鍵進行配網(wǎng)連接。

修改完上述幾處地方后,再次編譯,顯示error全部消除,至此涂鴉MCU SDK就已移植完畢,后續(xù)可使用涂鴉模組調(diào)試助手進行測試。涂鴉模組調(diào)試助手的使用方法可參考調(diào)試助手文檔。

五.實驗樣機測試展示

通過之前配置好的面板,通過涂鴉智能APP進行配網(wǎng)實時采集光照度傳感器的數(shù)據(jù)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/121372.html

相關文章

  • STM32+cubemx】0011 HAL庫開發(fā):I2C總線訪問加速度傳感器ADXL345

    摘要:本節(jié)我們介紹總線,并使用的總線來訪問加速度傳感器。主循環(huán)內(nèi)添加循環(huán)讀取的代碼編譯下載運行,可以看到數(shù)據(jù)輸出變換傳感器方向,可以看到測出的重力加速度的數(shù)值變化。 本節(jié)我們介紹I2C總線,并使用stm32的I2C總線來訪問加速度傳感器ADXL345。 1)I2C基礎知識 I2C總線通信比較適合...

    paulli3 評論0 收藏0
  • 基于STM32平臺的數(shù)字溫度顯示器系統(tǒng)設計

    摘要:帶中文字庫的是一種具有位位并行線或線串行多種接口方式,內(nèi)部含有國標一級二級簡體中文字庫的點陣圖形液晶顯示模塊其顯示分辨率為。貼片按鍵模塊支持標準的協(xié)議,完整的協(xié)議棧。以最低成本提供最大實用性,為功能嵌入其他系統(tǒng)提供無限可能。 項目簡介 開發(fā)環(huán)境: Keil5.14,CubeMX6.0.1,主...

    villainhr 評論0 收藏0
  • stm32通過I2C接口實現(xiàn)溫濕度(AHT20)的采集

    摘要:如圖所示在了解起始條件和停止條件后,我們再來看看在這個過程中數(shù)據(jù)的傳輸是如何進行的。四參考資料通過接口實現(xiàn)溫濕度的采集硬件和軟件區(qū)別 stm32通過I2C接口實現(xiàn)...

    chengtao1633 評論0 收藏0
  • STM32學習筆記 第二章 STM32資源介紹

    摘要:總線掛載的外設有等。外設地址映射片上外設區(qū)分為三條總線,根據(jù)外設速度的不同,不同總線掛載著不同的外設,掛載低速外設,和掛載高速外設。 第二章 STM32資源介紹 2...

    G9YH 評論0 收藏0
  • 基于STM32Cube MX開發(fā)的TencentOS-Tiny軟件包

    摘要:基于開發(fā)的軟件包導師汪禮超學員崔林威摘要騰訊物聯(lián)網(wǎng)操作系統(tǒng)是騰訊面向物聯(lián)網(wǎng)領域開發(fā)的實時操作系統(tǒng),具有低功耗,低資源占用,模塊化,可裁剪等特性。圖中斷函數(shù)處理進行生成工程配置,按如下界面進行配置,最后點擊,并點擊。 ...

    shiyang6017 評論0 收藏0

發(fā)表評論

0條評論

tinylcy

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<