熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 瑞薩RA0單片機連載——面向對象編程之SHT31溫度計

瑞薩RA0單片機連載——面向對象編程之SHT31溫度計

作者:lulugl 時間:2025-05-22 來源:EEPW 收藏


本文引用地址:http://www.bjwjmy.cn/article/202505/470718.htm

SHT3X是一款優(yōu)秀的溫濕度計。他采用I2C 接口,地址為0x44。它的驅動與原理的講解非常的豐富,網(wǎng)上也有非多的現(xiàn)成的代碼,我這里不做過多的闡述。本篇的主要特點是在前面OLED驅動的前提下,對sht31進行面向對象的編程方式進行講解。

1   前提

在OLED驅動之中,我已經(jīng)初始化了I2C的總線,所以有總線驅動在本篇沒有做,如果是使用spi 或者其他的方式進行數(shù)據(jù)展示,那么需要加上對I2C 總線進行初始化。

2 實現(xiàn)步驟

2.1 創(chuàng)建sensor.h,在其中創(chuàng)建結構體

image.png

2.2 創(chuàng)建drv_sensor.c

首先實例化

image.png

接下來編寫發(fā)送、接收超時函數(shù)

image.png

image.png

為了驗證讀取的溫度與數(shù)據(jù)是否正確,編寫CRC函數(shù)如下:

image.png

1747967803246854.png

在讀取溫度的函數(shù)中首先向sht31發(fā)送開始轉換命令0x2400, 我將他封裝在一個數(shù)據(jù)中,使用R_SAU_I2C_Write進行一次性發(fā)送。當然由于總線上有SSD1306 操作時他的g_sau_i2c_master_ctrl 的從機地址是SSD1306的0x3c所以,需要先配置sht31的地址,他的發(fā)送數(shù)據(jù)轉換命令如下:

image.png

由于轉換需要一段時間,需要延時。

延時之后,我一次讀取6位數(shù)據(jù),如果獲取數(shù)據(jù)成功,則進行CRC并進行float轉換,轉換成功后放到結構體中,并更新狀態(tài):整個獲取數(shù)據(jù)的代碼如下:

image.png

image.png

image.png

3   數(shù)據(jù)展示

在主函數(shù)中編寫測試代碼如下,如果獲取到溫度數(shù)據(jù)則顯示溫濕度,如果獲取出錯則顯示EEROR, 其代碼如下:

image.png

image.png

image.png

4   實驗效果

image.png

5   總結

使用面向對象對sht31的驅動進行封裝,在的FSP驅動中,可以快速實現(xiàn)驅動,同時只需要提供驅動的接口,可以實現(xiàn)低耦合的功能。

( 本文來源于《EEPW》



評論


相關推薦

技術專區(qū)

關閉