You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
2.9 KiB
111 lines
2.9 KiB
|
|
|
|
/*******************************************************************************
|
|
* Filename: bsp_mlx90615.h
|
|
* Revised: All copyrights reserved to Roger.
|
|
* Date: 2022-05-04
|
|
* Revision: v1.0
|
|
* Writer: Roger-WY.
|
|
*
|
|
* Description: 非接触式红外温度传感器模块驱动(数字式) 头文件
|
|
*******************************************************************************/
|
|
#ifndef __BSP_MLX90615_H__
|
|
#define __BSP_MLX90615_H__
|
|
|
|
#include "msp_iicMx.h"/////使用iic1 作为
|
|
#include "c_type51.h"/////
|
|
#include "TTSS_task.h"/////
|
|
#include "stc_8_delay.h"/////
|
|
////#include "bsp_lora_jx.h"/////
|
|
#include "bsp_oled.h"/////
|
|
#include "MAX30102.h"/////
|
|
|
|
|
|
#define MLX90615_TEMP_READ_ERR_CODE -99
|
|
|
|
/* MLX90615 内部寄存器地址定义 */
|
|
/* Private defines -----------------------------------------------------------*/
|
|
/* DEFAULT SLAVE ADDRESS */
|
|
#define MLX90615_ADDR 0x5B
|
|
#define MLX90615_ADDR_WR (MLX90615_ADDR << 1)
|
|
|
|
|
|
#define MLX90615_EEPROM_SA 0x10
|
|
#define MLX90615_EEPROM_PWMT_MIN MLX90615_EEPROM_SA
|
|
#define MLX90615_EEPROM_PWMT_RNG 0x11
|
|
#define MLX90615_EEPROM_CONFIG 0x12
|
|
#define MLX90615_EEPROM_EMISSIVITY 0x13
|
|
|
|
#define MLX90615_RAW_IR_DATA 0x25
|
|
#define MLX90615_AMBIENT_TEMPERATURE 0x26
|
|
#define MLX90615_OBJECT_TEMPERATURE 0x27
|
|
|
|
#define MLX90615_SLEEP 0xC6
|
|
|
|
// DEPRECATED! (just emissivity, not the whole EEPROM)
|
|
#define AccessEEPROM MLX90615_EEPROM_EMISSIVITY
|
|
|
|
#define Default_Emissivity 0x4000
|
|
|
|
#define D_m95_mode_HR 0x02
|
|
#define D_m95_mode_SPO2 0x03
|
|
|
|
|
|
|
|
|
|
/* MLX90615 供外部调用函数 */
|
|
u8 bsp_Mlx90615Init(void);
|
|
int8_t bsp_Mlx90615ScanDevice(uint8_t *pSlaveAddr);
|
|
int8_t bsp_Mlx90615ReadTempAmbient(uint8_t slaveAddr, float *ao);
|
|
int8_t bsp_Mlx90615ReadTempObject(uint8_t slaveAddr, float *to);
|
|
int8_t bsp_Mlx90615ReadIrData(uint8_t slaveAddr, uint16_t *ir);
|
|
int8_t bsp_Mlx90615ReadEmissivity(uint8_t slaveAddr, float *emissivity);
|
|
int8_t bsp_Mlx90615SetEmissivity(uint8_t slaveAddr, float emissivity);
|
|
|
|
|
|
#define L0_mlx95_wakeup() L0_IICMx_SCL(D_iicch_mlx96015,1);\
|
|
delay_ms2(1);\
|
|
L0_IICMx_SCL(D_iicch_mlx96015,0);\
|
|
delay_ms2(40);\
|
|
L0_IICMx_SCL(D_iicch_mlx96015,1);
|
|
|
|
|
|
typedef struct
|
|
{
|
|
u8 d[12];
|
|
u8 Object[3];
|
|
u8 Ambient[3];
|
|
u16 tmp;
|
|
/// u32 u32a;
|
|
u16 u16b;
|
|
u16 u16t;
|
|
s16 u16out_o;///目标温度 放大100倍
|
|
s16 u16out_10o;///目标温度 放大10倍
|
|
s16 u16out_10o_temp;///目标温度 放大10倍
|
|
|
|
s16 u16out_a;///环境温度 放大100倍
|
|
s16 u16out_10a;///环境温度 放大10倍
|
|
s16 u16out_10a_temp;///环境温度 放大10倍
|
|
}TS_mx95_;
|
|
extern TS_mx95_ ts_mx95;
|
|
|
|
|
|
void L1_mlx95_get_tmp(void);
|
|
|
|
|
|
|
|
typedef struct
|
|
{
|
|
TS_task task;
|
|
}TS_task_m95_;
|
|
|
|
extern TS_task_m95_ ts_task_m95;
|
|
|
|
extern void L2_task_m95_register(void);
|
|
extern void L2_task_m95_handle(TS_task_m95_ *s);
|
|
|
|
|
|
|
|
#endif
|
|
/***************************** (END OF FILE) **********************************/
|
|
|
|
|