91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發布日期: 2021-05-29
  • 語言: 其他
  • 標簽: bme280??溫度??stm32??

資源簡介

端口實現的IIC方式,驅動BME280,測量溫度. 支持多個BME280接在不同端口. 增加前后溫度變化過大的異常數據處理

資源截圖

代碼片段和文件信息

#include?
#include?“stm32f10x.h“
#include?“myconfig.h“
#include?“bme280.h“
#include?“myconfig.h“
#include?
#include?“globalsys.h“
#include?“globalval.h“
#ifdef?USE_BME280_TASK
??
struct?BME280_Sensor_Struct?BME280_Sensor1;
struct?BME280_Sensor_Struct?BME280_Sensor2;
#define?MAX_BME280_ERROR?30
volatile?int?is_reseting=0;
char?reset_flag=0;

/*
?* 函數名?:?IIC_ReadOneByte
?* 描述 ?:?I2C讀出一個字節數據
?* 輸入 ?:寄存器地址
?* 返回值?:讀出來的數據
?*/
u8?IIC_ReadOneByte(I2C_Bit_Ops?*I2C?u8?dev_addr?u8?reg_addr)
{ ??
u8?temp=0;

??IIC_Start(I2C);??
IIC_Send_Byte(I2C?(dev_addr?< IIC_Wait_Ack(I2C);?

??IIC_Send_Byte(I2C?reg_addr);??? //發送寄存器地址
IIC_Wait_Ack(I2C);

IIC_Start(I2C);?? ? ???
IIC_Send_Byte(I2C??(dev_addr?< IIC_Wait_Ack(I2C); ?
temp=IIC_Read_Byte(I2C?0); ???

IIC_Stop(I2C);//產生一個停止條件 ?

return?temp;
}


/*
?* 函數名?:?IIC_Write_OneBytes
?* 描述 ?:?I2C寫1個字節的內容
?* 輸入 ?:1.I2C設備的地址?;?2.寄存器地址?;??4.被寫的內容
?* 返回值?:無
?*/
void?IIC_Write_OneBytes(I2C_Bit_Ops?*I2C?u8?dev_addr?u8?reg_addr?u8?reg_data)
{
u8???ucAddr;
ucAddr?=?reg_addr;
IIC_Start(I2C);
IIC_Send_Byte(I2C?dev_addr?< IIC_Wait_Ack(I2C);

??IIC_Send_Byte(I2C?ucAddr?%?256);???//發送低地址
IIC_Wait_Ack(I2C);?

IIC_Send_Byte(I2C?reg_data);?????//發送字節 ???
IIC_Wait_Ack(I2C);??

??IIC_Stop(I2C);
}

/*
?* 函數名?:?IIC_Read_NBytes
?* 描述 ?:?I2C讀出N個字節的內容
?* 輸入 ?:1.I2C設備的地址?;?2.寄存器地址?;?3.讀出數據的數量?;4.存儲讀出數據的首地址
?* 返回值?:無
?*/
void?IIC_Read_NBytes(I2C_Bit_Ops?*I2C?u8?dev_addr?u8?reg_addr?u8?cnt?u8?*reg_data)
{??
u8?t;

for(t?=?0;?t? {
*reg_data?=?IIC_ReadOneByte(I2C?dev_addr?reg_addr?+?t);?
reg_data++;
}?
}




/*
?* 函數名?:?IIC_Bme280_Init
?* 描述 ?:?BME280?I2C初始化?并且讀出補償值
?* 輸入 ?:無
?* 返回值?:無
?*/
void?Bme280_InitParam(struct?BME280_Sensor_Struct?*BME280)
{
uint8_t t_cmd;
uint8_t?buf_Bme280[25]={0};
uint8_t?bme280[7]={0};
uint8_t?buf_H1?=?0;

/*?讀取溫度壓力補償值?*/
IIC_Read_NBytes(BME280->I2C?BME280_DEVICE_ADDR?0x88??24?buf_Bme280);

/*?讀取濕度補償值?*/
IIC_Read_NBytes(BME280->I2C?BME280_DEVICE_ADDR?0xE1?7?bme280);

/*?讀取濕度補償值?*/
IIC_Read_NBytes(BME280->I2C?BME280_DEVICE_ADDR?0xA1?1?&buf_H1);

/*?計算溫度補償值?*/
BME280->Register.dig_T1?=?buf_Bme280[1]?< BME280->Register.dig_T2?=?buf_Bme280[3]?< BME280->Register.dig_T3?=?buf_Bme280[5]?<
/*計算壓力補償值*/
BME280->Register.dig_P1?=?buf_Bme280[7]?< BME280->Register.dig_P2?=?buf_Bme280[9]?< BME280->Register.dig_P3?=?buf_Bme280[11]?< BME280->Register.dig_P4?=?buf_Bme280[13]?< BME280->Register.dig_P5?=?buf_Bme280[15]?< BME280->Register.dig_P6?=?buf_Bme280[17]?< BME280->Register.dig_P7?=?buf_Bme280[19]?< BME280->Regist

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

????I.A....??????1617??2019-03-28?15:34??bme280.h

????I.A....??????6042??2019-01-03?15:16??bme_iic.c

????I.A....??????1515??2019-01-02?14:19??bme_iic.h

????I.A....?????14248??2019-03-29?11:41??bme280.c

-----------?---------??----------?-----??----

????????????????23422????????????????????4


評論

共有 條評論