bh1750
是一種用於兩線制序列匯流排介面的16位
數字型光強度感測器積體電路。利用它的高解析度可以探測較大範圍的光強度變化。(1lx~65535lx
)。
在rt-thread中讀取bh1750
資料有兩種方法:一種方法是借助bh1750軟體包
;另一種方法是直接使用i2c驅動框架
讀取bh1750
資料。
本次實驗我們借助bh1750軟體包來讀取
bh1750
感測器資料,使用rt-thread studio v1.1.0
來建立工程。
目前只有軟體i2c驅動。儲存rt-thread settings
檔案。編譯報錯:
那是因為我們沒有開啟i2c相關的巨集,drv_soft_i2c.c
中模擬了幾個i2c,我們要確認我們使用哪乙個i2c與bh1750感測器相連。
這裡我們使用的是小熊派開發板,bh1750與mcu通過pb6、pb7引腳相連:
雖然pb6、pb7可以配置為硬體i2功能,但是我們這裡使用的是軟體i2c,所以這裡的pb6、pb7是當做gpio來用的。然後我們根據注釋的說明把**改為:
然後編譯報錯,錯誤提示這幾個巨集有問題。反反覆覆檢查,好像沒什麼問題,為啥就會瘋狂報錯。隱約記得有些例程例程中表示引腳好像不是這麼表示的,而是類似這樣的:
每個引腳都有乙個新的代號,而這些引腳與代號的關係可以在drv_gpio.c
中檢視:
可以看到我們的pb6、pb7引腳的代號分別是22、23。然後嘗試著把上面的i2c巨集**改為:
編譯成功!然後試著讀取感測器資料,也成功了。所以,這大概是rt-thread studio v1.1.0
的乙個小bug,模板工程的board.h
裡關於i2c的注釋有問題,嚴重誤導了我們。。
若執行sensor read
命令無資料輸出時,需要開啟\components\drivers\sensors\sensor_cmd.c,在sensor_show_data
函式後面自行增加環境光照強度列印**:
case rt_sensor_class_light:
log_i("num:%3d, light:%4d.%d, timestamp:%5d", num, sensor_data->data.light / 10, sensor_data->data.light % 10, sensor_data->timestamp);
break;
(1)測試函式
(2)顯示資料
除此之外還有其它幾個應用相關的函式。
我們也可以模仿sensor_cmd.c裡面的**來寫我們自己的應用**:
static void bh1750_thread_entry(void *parameter)
/* 以唯讀模式開啟bh1750 */
if (rt_device_open(dev, rt_device_flag_rdonly) != rt_eok)
while(1)
else
rt_thread_mdelay(1000);
}}int bh1750_example(void)
return 0;
}/* 匯出到 msh 命令列表中 */
msh_cmd_export(bh1750_example, bh1750 example);
執行結果:
使用rt-thread提供給我的i/o裝置管理介面rt_device_find、rt_device_open、rt_device_read、rt_device_close來編寫應用。相關框圖:
關於rt-thread的i/o裝置模型可檢視往期筆記:【rt-thread筆記】io裝置模型
以上就是本次的分享,如有錯誤,歡迎指出!
我的個人部落格:
我的csdn部落格:
Rtthread學習筆記
rt sem init rt sem create rt sem take 等待 訊號量 rt sem release 放出 訊號量 rt sem detach 訊號量脫離2.互斥量 與訊號量不同的是,互斥量只能由持有執行緒釋放,其他執行緒不可釋放 取得互斥量的執行緒與高優先度的優先順序相同 rt ...
RT thread學習筆記之
1 往裸機工程新增 rt thread 原始碼 a 拷貝 rt thread package 到裸機工程根目錄 2 拷貝 rtconfig.h 檔案到 user 資料夾 a 將 rt thread 3.0.3 bsp 資料夾下面的 rtconfig.h 配套檔案拷貝到工程根目錄下面的 user資料夾...
RT Thread學習筆記之RT Thread簡介
rt thread是乙個功能強大,元件豐富的物聯網作業系統。物聯網作業系統是指以作業系統核心 可以是rtos linux等 為基礎,包括檔案系統 圖形庫等較為完整的中介軟體元件,具備低功耗 安全 通訊協議支援和雲端連線能力的軟體平台。rt thread kernel service library ...