Files
TencentOS-tiny/board/ALPHA_I.MX_emmc_256ddr/bsp/bmp280/bsp_bmp280.h
daishengdong 3d9d6198c8 add cortex-v7a support
How To Run:
    see TencentOS-tiny\board\ALPHA_I.MX_emmc_256ddr\README.md

TODO Next:
1. VFP support
2. fault diagnosis support
3. qemu vexpress ca9 support
4. raspberry pi support
5. SMP support
2020-01-19 19:06:24 +08:00

88 lines
3.0 KiB
C

#ifndef _BSP_BMP280_H
#define _BSP_BMP280_H
/***************************************************************
Copyright © zuozhongkai Co., Ltd. 1998-2019. All rights reserved.
文件名 : bsp_bmp280.h
作者 : 左忠凯
版本 : V1.0
描述 : BMP280驱动头文件。
其他 : 无
论坛 : www.openedv.com
日志 : 初版V1.0 2019/1/17 左忠凯创建
***************************************************************/
#include "bsp.h"
#include "bsp_gpio.h"
/* 宏定义 */
#define BMP280_CSN(n) (n ? gpio_pinwrite(GPIO1, 20, 1) : gpio_pinwrite(GPIO1, 20, 0)) //SPI片选信号
#define BMP280_ID_VALUE 0X58 /* BMP280 ID值 */
#define BMP280_RESET_VALUE 0XB6 /* BMP280复位值 */
/* BMP280寄存器宏定义 */
#define BMP280_TEMPXLSB_REG 0XFC /* 温度值的bit[3:0]寄存器 */
#define BMP280_TEMPLSB_REG 0XFB /* 温度值的bit[11:4]寄存器 */
#define BMP280_TEMPMSB_REG 0XFA /* 温度值的bit[19:12]寄存器 */
#define BMP280_PRESXLSB_REG 0XF9 /* 压力值的bit[3:0]寄存器 */
#define BMP280_PRESLSB_REG 0XF8 /* 压力值的bit[11:4]寄存器 */
#define BMP280_PRESMSB_REG 0XF7 /* 压力值的bit[19:12]寄存器 */
#define BMP280_CONFIG_REG 0XF5 /* 配置寄存器 */
#define BMP280_CTRLMEAS_REG 0XF4 /* 测量配置寄存器 */
#define BMP280_STATUS_REG 0XF3 /* 状态寄存器 */
#define BMP280_RESET_REG 0XE0 /* 复位寄存器 */
#define BMP280_ID_REG 0XD0 /* ID寄存器 */
#define BMP280_TRIMPARAM_FRG 0X88 /* 参数组寄存器首地址 */
#define BMP280_TRIMPARAM_LEN 24 /* 参数组寄存器长度 */
#define BMP280_INVALID_DATA 0 /* 无效的数据 */
/*
* BMP280 参数结构体
*/
struct bmp280_calib_param
{
unsigned short dig_T1; /* T1参数 */
short dig_T2; /* T2参数 */
short dig_T3; /* T3参数 */
unsigned short dig_P1; /* P1参数 */
short dig_P2; /* P2参数 */
short dig_P3; /* P3参数 */
short dig_P4; /* P4参数 */
short dig_P5; /* P5参数 */
short dig_P6; /* P6参数 */
short dig_P7; /* P7参数 */
short dig_P8; /* P8参数 */
short dig_P9; /* P9参数 */
signed int t_fine; /* t_fine参数*/
};
/*
* BMP280结构体
*/
struct bmp280_dev_struc
{
struct bmp280_calib_param calib_param;
signed int uncomp_temp; /* 原始的温度值 */
signed int uncomp_pres; /* 原始的压力值 */
signed int actual_temp; /* 真实的温度值 */
signed int actual_pres; /* 真实的压力值 */
};
extern struct bmp280_dev_struc bmp280_dev;
/* 函数声明 */
unsigned char bmp280_init(void);
unsigned char bmp280_read_reg(unsigned char reg);
void bmp280_read_len(unsigned char reg, unsigned char *buf, unsigned char len);
void bmp280_write_reg(unsigned char reg, unsigned char value);
void bmp280_get_calibparam(void);
signed int bmp280_get_uncomptemp(void);
signed int bmp280_get_uncomppres(void);
signed int bmp280_get_actualtemp(signed int uncomptemp);
unsigned int bmp280_get_actualpres(s32 uncomppres);
#endif