国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32 SHT40驅(qū)動源碼(使用硬件I2C)

這篇具有很好參考價值的文章主要介紹了STM32 SHT40驅(qū)動源碼(使用硬件I2C)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

簡介:

SHT40.c:

SHT40.h

測試結(jié)果:


簡介:

? ? ? ? SHT40是瑞士Sensirion公司推出的第四代溫濕度傳感器,內(nèi)部集成加熱器用于去除表面微小液滴。集成I2C接口,典型的相對濕度精度1.8%RH,典型溫度精度0.2℃,運(yùn)行在0-100%RH和-40-125℃的環(huán)境中。

主控:STM32H7B0VBT6

平臺:STM32CubeIDE

SHT40一片,使用硬件I2C驅(qū)動:

sht40驅(qū)動,底層驅(qū)動,stm32,嵌入式硬件,單片機(jī)

I2C配置:

sht40驅(qū)動,底層驅(qū)動,stm32,嵌入式硬件,單片機(jī)

如果硬件上沒有上拉電阻,請打開GPIO的上拉電阻:

sht40驅(qū)動,底層驅(qū)動,stm32,嵌入式硬件,單片機(jī)

SHT40.c:

/********************************Copyright (c)**********************************\
**
**                   (c) Copyright 2023, Main, China, 被鋼琴支配的悲慘大學(xué)生.
**                           All Rights Reserved
**
**                           By(被鋼琴支配的悲慘大學(xué)生 personally owned)
**                           https://blog.csdn.net/m0_71226271?type=blog
**
**----------------------------------文件信息------------------------------------
** 文件名稱: SHT40.c
** 創(chuàng)建人員: 被鋼琴支配的悲慘大學(xué)生
** 創(chuàng)建日期: 2023-09-04
** 文檔描述:基于STM32H7B0VBT6的HAL庫SHT40驅(qū)動源碼,使用硬件I2C
\********************************End of Head************************************/
#include "main.h"
#include "i2c.h"
#include "SHT40.h"
/*************************************************************************************************
*	函 數(shù) 名: SHT40_Read_Temperature_Humidity
*	入口參數(shù): Temperature溫度指針,Humidity濕度指針
*	返回值:無
*	函數(shù)功能: 以高精度讀取溫度和濕度
*	說    明:不對CRC校驗(yàn)碼做驗(yàn)證
*************************************************************************************************/
void SHT40_Read_Temperature_Humidity(double *Temperature,double *Humidity)
{
	uint32_t Temperature_Byte;
	uint32_t Temperature_Checksum;
	uint32_t Humidity_Byte;
	uint32_t  Humidity_Checksum;

	uint8_t I2C_Transmit_Data[1];
	I2C_Transmit_Data[0]=SHT40_MEASURE_TEMPERATURE_HUMIDITY;
	uint8_t I2C_Receive_Data[6];
	HAL_I2C_Master_Transmit(&hi2c1, SHT30_Write, I2C_Transmit_Data,1,HAL_MAX_DELAY);
    HAL_Delay(10);
	HAL_I2C_Master_Receive(&hi2c1, SHT30_Read, I2C_Receive_Data,6,HAL_MAX_DELAY);

	Temperature_Byte = I2C_Receive_Data[0] << 8| I2C_Receive_Data[1];
	Temperature_Checksum= I2C_Receive_Data[2];
	Humidity_Byte = I2C_Receive_Data[3] << 8| I2C_Receive_Data[4];
	Humidity_Checksum = I2C_Receive_Data[5];
    *Temperature = -45 + 175 * Temperature_Byte/65535.0;
	*Humidity = -6 + 125 * Humidity_Byte/65535.0;

}
/*************************************************************************************************
*	函 數(shù) 名: SHT40_Read_Serial_Number
*	入口參數(shù): 無
*	返回值:32bit的序列號
*	函數(shù)功能: 讀取SHT40的出場唯一序列號
*	說    明:無
*************************************************************************************************/
uint32_t SHT40_Read_Serial_Number()
{
	uint32_t Serial_Number;
	uint8_t I2C_Transmit_Data[1];
	I2C_Transmit_Data[0]=SHT40_READ_SERIAL_NUMBER;
	uint8_t I2C_Receive_Data[6];
	HAL_I2C_Master_Transmit(&hi2c1, SHT30_Write, I2C_Transmit_Data,1,HAL_MAX_DELAY);
	HAL_I2C_Master_Receive(&hi2c1, SHT30_Read, I2C_Receive_Data,6,HAL_MAX_DELAY);
	Serial_Number=(I2C_Receive_Data[0] << 24)|
			(I2C_Receive_Data[1] << 16)|
			(I2C_Receive_Data[3] << 8)|
			(I2C_Receive_Data[4] << 0);
	return Serial_Number;


}
/*************************************************************************************************
*	函 數(shù) 名: SHT40_Heater_200mW_1s
*	入口參數(shù): 無
*	返回值:無
*	函數(shù)功能: 開始內(nèi)部加熱器,以200mW加熱1秒(一秒)
*	說    明:加熱時間不能超過運(yùn)行時間的10%,否則會過熱。詳情說明請參考數(shù)據(jù)手冊12頁
*************************************************************************************************/
void SHT40_Heater_200mW_1s()
{
	uint8_t I2C_Transmit_Data[1];
	I2C_Transmit_Data[0]=SHT40_HEATER_200mW_1s;
	HAL_I2C_Master_Transmit(&hi2c1, SHT30_Write, I2C_Transmit_Data,1,HAL_MAX_DELAY);
}

SHT40.h

/********************************Copyright (c)**********************************\
**
**                   (c) Copyright 2023, Main, China, 被鋼琴支配的悲慘大學(xué)生.
**                           All Rights Reserved
**
**                           By(被鋼琴支配的悲慘大學(xué)生 personally owned)
**                           https://blog.csdn.net/m0_71226271?type=blog
**
**----------------------------------文件信息------------------------------------
** 文件名稱: SHT40.h
** 創(chuàng)建人員: 被鋼琴支配的悲慘大學(xué)生
** 創(chuàng)建日期: 2023-09-04
** 文檔描述:基于STM32H7B0VBT6的HAL庫SHT40驅(qū)動源碼,使用硬件I2C
\********************************End of Head************************************/
#include "main.h"
/**************************I2C地址****************************/
#define SHT30_Write (0x44<<1)   //寫入地址
#define SHT30_Read  ((0x44<<1)+1)   //讀出地址
/**************************SHT40命令****************************/
#define SHT40_MEASURE_TEMPERATURE_HUMIDITY 0xFD  //高精度讀取溫濕度命令
#define SHT40_READ_SERIAL_NUMBER 0x89                         //讀取唯一序列號命令
#define SHT40_HEATER_200mW_1s 0x39                               //200mW加熱1秒命令
/**************************API****************************/
void SHT40_Read_Temperature_Humidity(double *Temperature,double *Humidity);
uint32_t SHT40_Read_Serial_Number(void);
void SHT40_Heater_200mW_1s(void);

測試結(jié)果:

sht40驅(qū)動,底層驅(qū)動,stm32,嵌入式硬件,單片機(jī)文章來源地址http://www.zghlxwxcb.cn/news/detail-841358.html

到了這里,關(guān)于STM32 SHT40驅(qū)動源碼(使用硬件I2C)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STM32F407系列硬件I2C筆記

    STM32F407系列有3個硬件I2C: I2C1:該接口位于GPIOB引腳上,包括PB6(I2C1_SCL)和PB7(I2C1_SDA)。 I2C2:該接口位于GPIOB引腳上,包括PB10(I2C2_SCL)和PB11(I2C2_SDA)。 I2C3:該接口位于GPIOA和GPIOC引腳上,包括PA8(I2C3_SCL)和PC9(I2C3_SDA)。 ? 硬件I2C的速度比軟件I2C更快,硬件I2C通??梢?/p>

    2024年02月04日
    瀏覽(34)
  • 【STM32】STM32學(xué)習(xí)筆記-硬件I2C讀寫MPU6050(35)

    【STM32】STM32學(xué)習(xí)筆記-硬件I2C讀寫MPU6050(35)

    I2C(Inter-Integrated Circuit)總線是一種由NXP(原PHILIPS)公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。多用于主控制器和從器件間的主從通信,在小數(shù)據(jù)量場合使用,傳輸距離短,任意時刻只能有一個主機(jī)等特性。 串行的 8 位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可

    2024年01月25日
    瀏覽(34)
  • STM32F030硬件I2C代碼及解析

    STM32F030硬件I2C代碼及解析

    剛接觸STM32的時候,第一個學(xué)習(xí)的就是I2C,當(dāng)時去網(wǎng)上學(xué)習(xí)別人寫得I2C代碼,雖然能用,但是當(dāng)時并不理解為什么要這么配置,特別希望有人把代碼掰碎了講講看,今天突然想起來,就把以前寫的I2C代碼拿出來掰碎了捋捋,希望對新手有些幫助。 先說說STM32的I2C: ST的M3系列還

    2024年02月08日
    瀏覽(28)
  • 【STM32學(xué)習(xí)】——STM32-I2C外設(shè)&硬件讀寫MPU6050&軟硬件讀寫波形對比

    目錄 前言 一、I2C外設(shè) 二、硬件I2C操作流程 1.主機(jī)發(fā)送時序 3.其他時序

    2024年02月10日
    瀏覽(30)
  • STM32 硬件IIC 控制OLED I2C卡死問題

    STM32 硬件IIC 控制OLED I2C卡死問題

    #更新通知:2023-09-06 STM32L151 固件庫 使用I2C 太難了,又宕機(jī)了,建議不要在固件庫版本上嘗試硬件IIC 了,一般人真用不了,直接使用軟件模擬的,或者不要使用固件庫了,用HAL 庫吧,據(jù)說HAL 庫沒這么多問題,不死心的我還是死心了,等有空再研究吧 3.1 I2C模式,我這里選的

    2024年02月09日
    瀏覽(33)
  • STM32軟件I2C驅(qū)動MPU6050

    STM32軟件I2C驅(qū)動MPU6050

    這里沒有什么復(fù)雜的地方,采用MPU6050的現(xiàn)成模塊.模塊的SCL接B10,SDA接B11,這里連接了一個OLED顯示屏,用于顯示獲取到的數(shù)據(jù). 注意:這里使用的模塊自帶上拉電阻 首先在工程目錄里創(chuàng)建: \\\"MyI2C.h\\\"和\\\"MyI2C.c\\\"文件,用于軟件驅(qū)動I2C. \\\"MPU6050.h\\\",\\\"MPU6050.c\\\"和\\\"MPU6050Reg.h\\\"文件,用于MPU6050的驅(qū)動. 在

    2024年02月15日
    瀏覽(22)
  • STM32Cubemxhal庫硬件IIC驅(qū)動SHT40溫濕度傳感器

    STM32Cubemxhal庫硬件IIC驅(qū)動SHT40溫濕度傳感器

    STM32cubemx配置硬件IIC如圖所示 ?SHT40的驅(qū)動代碼 注意:在讀sht40的寄存器之后一定要加10幾個ms的延時

    2024年02月12日
    瀏覽(36)
  • 01_STM32軟件+硬件I2C讀取MPU6050(HAL庫)

    01_STM32軟件+硬件I2C讀取MPU6050(HAL庫)

    目錄 1、I2C簡介 2、I2C時序單元 2.1 起始條件 2.2 終止條件 2.3 發(fā)送一個字節(jié) 2.4 接收一個字節(jié) 2.5 發(fā)送應(yīng)答 2.6 接收應(yīng)答 3、I2C完整時序 3.1 指定地址寫一個字節(jié) 3.2 當(dāng)前地址讀一個字節(jié) 3.2?指定地址讀一個字節(jié) 4、簡單軟件I2C代碼(HAL) 4.1 軟件I2C 4.2 軟件I2C讀MPU6050寄存器 5、ST

    2024年04月17日
    瀏覽(29)
  • RT-Thread在STM32硬件I2C的踩坑記錄

    RT-Thread在STM32硬件I2C的踩坑記錄

    參考文章: 1.將硬件I2C巧妙地將“嫁接”到RTT原生的模擬I2C驅(qū)動框架 2.基于STM32F4平臺的硬件I2C驅(qū)動實(shí)現(xiàn)筆記 3.《rt-thread驅(qū)動框架分析》- i2c驅(qū)動 ??最近打算用RT-Thread做一個小demo玩玩,其中需要用I2C通信驅(qū)動一個oled屏幕,但是找了一圈也沒找到RTT中對硬件I2C的支持方式以及

    2024年02月11日
    瀏覽(28)
  • STM32F407硬件I2C實(shí)現(xiàn)MPU6050通訊(CUBEIDE)

    STM32F407硬件I2C實(shí)現(xiàn)MPU6050通訊(CUBEIDE)

    工程代碼 https://download.csdn.net/download/weixin_52849254/87886714 I2C1通道可選擇三種不同的通訊協(xié)議:I2C、SMBus-Alert-mode、SMBus-two-wire-Interface。 SMBus (System Management Bus,系統(tǒng)管理總線), 為系統(tǒng)和電源管理這樣的任務(wù)提供了一條控制總線,SMBus與I2C總線之間在時序特性上存在一些差別 修改

    2024年02月09日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包