硬汉嵌入式论坛

 找回密码
 立即注册
查看: 682|回复: 1
收起左侧

[STM32H7] 请教下,bh1750 貌似进入掉电模式后唤不醒 ??

[复制链接]

610

主题

3061

回帖

4911

积分

至尊会员

积分
4911
发表于 2022-8-24 14:45:11 | 显示全部楼层 |阅读模式


typedef enum
{
        BHOP_POWER_DOWN = 0x00,                /* 进入掉电模式。芯片上电后缺省就是PowerDown模式 */
        BHOP_POWER_ON   = 0x01,                /* 上电,等待测量命令 */
        BHOP_RESET      = 0x07,                        /* 清零数据寄存器 (Power Down 模式无效) */
        BHOP_CON_H_RES  = 0x10,                /* 连续高分辨率测量模式  (测量时间 120ms) (最大 180ms)*/
        BHOP_CON_H_RES2 = 0x11,                /* 连续高分辨率测量模式2 (测量时间 120ms)*/
        BHOP_CON_L_RES  = 0x13,                /* 连续低分辨率测量模式 (测量时间 16ms)*/

        BHOP_ONE_H_RES  = 0x20,                /* 单次高分辨率测量模式 , 之后自动进入Power Down */
        BHOP_ONE_H_RES2 = 0x21,                /* 单次高分辨率测量模式2 , 之后自动进入Power Down  */
        BHOP_ONE_L_RES  = 0x23,                /* 单次低分辨率测量模式 , 之后自动进入Power Down  */
} BH1750_MODE;


模式设置为 2
BH1750_ChageMode(2);                                                        /* 高分辨率连续测量 */


/*
*********************************************************************************************************
*        函 数 名: BH1750_PowerDown
*        功能说明: 芯片进入掉电模式
*        形    参: 无
*        返 回 值: 无
*********************************************************************************************************
*/
void BH1750_PowerDown(void)
{
        BH1750_WriteCmd(BHOP_POWER_DOWN);                /* 芯片进入掉电模式 */
}


/*
*********************************************************************************************************
*        函 数 名: BH1750_PowerOn
*        功能说明: 芯片上电,进入工作模式
*        形    参: 无
*        返 回 值: 无
*********************************************************************************************************
*/
void BH1750_PowerOn(void)
{
        BH1750_WriteCmd(BHOP_POWER_ON);                /* 芯片进入上电模式 */
//        HAL_Delay(10);
}


uint16_t BH1750_GetLux(void)
{
       
        uint16_t usLight;
        uint16_t lux;
       
        BH1750_PowerOn();   // 唤醒 bh1750
       
        usLight = BH1750_ReadData();
       
        BH1750_PowerDown();
       
        /* 计算光强度 = 16位寄存器值 / 1.2  * (69 / X) */

        //lux = usLight * (((float)1 / 1.2) * ((float)69 / s_MTReg));
        lux = (uint16_t)(usLight * 5 * 69) / (6 * s_MTReg);
       
        if (s_Mode == 2)        /* 高分辨率测量模式2 */
        {
                lux = lux / 2;
        }
        else
        {
                ;        /* 不必除2 */
        }
        _bh1750_lux.lux_value = lux;
        My_Printf("BH1750 lux = %d\r\n", _bh1750_lux.lux_value);
               
        return lux;
}


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106978
QQ
发表于 2022-8-25 10:24:28 | 显示全部楼层
掉电模式我没测试过,下次我试试。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-12 21:55 , Processed in 0.147695 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表