打印
[开发板与模块]

【HT32F52352 Starter Kit测评】+传感器检测

[复制链接]
1828|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 eltonchang2001 于 2022-11-9 11:32 编辑

BH1750是一种用于光照强度检测的传感器,并以I2C接口的方式来工作,为了便于程序移植这里是以GPIO口模拟I2C的方式来驱动该传感器。
显示效果
传感器与开发板的连接关系为:
OLED屏:
SCL---PA2
SDA---PA3
BH1750
SCL---PA6
SDA---PA7
输入输出模式设置函数:
void IIC_INPUT_MODE_SET()
{
      AFIO_GPxConfig(GPIO_PA, AFIO_PIN_7, AFIO_FUN_GPIO);
      GPIO_PullResistorConfig(HT_GPIOA, AFIO_PIN_7,GPIO_PR_DOWN);
      GPIO_DirectionConfig(HT_GPIOA,AFIO_PIN_7, GPIO_DIR_IN);
      GPIO_InputConfig(HT_GPIOA, GPIO_PIN_7, ENABLE);
}

void IIC_OUTPUT_MODE_SET()
{
      AFIO_GPxConfig(GPIO_PA, AFIO_PIN_7, AFIO_FUN_GPIO);
      GPIO_PullResistorConfig(HT_GPIOA, AFIO_PIN_7,GPIO_PR_DOWN );
      GPIO_DirectionConfig(HT_GPIOA, AFIO_PIN_7, GPIO_DIR_OUT);
           GPIO_InputConfig(HT_GPIOA, AFIO_PIN_7, ENABLE);
}


BH1750初始化函数:
void BH1750_Init(void)
{
   {
      CKCU_PeripClockConfig_TypeDef CKCUClock = {{ 0 }};
      CKCUClock.Bit.AFIO = 1;
      CKCUClock.Bit.PA = 1;
      CKCU_PeripClockConfig(CKCUClock, ENABLE);
   }
   {
      AFIO_GPxConfig(GPIO_PA, AFIO_PIN_6|AFIO_PIN_7, AFIO_FUN_GPIO);
      GPIO_PullResistorConfig(HT_GPIOA, AFIO_PIN_6|AFIO_PIN_7, GPIO_PR_DOWN);
      GPIO_DirectionConfig(HT_GPIOA, AFIO_PIN_6|AFIO_PIN_7, GPIO_DIR_OUT);
           GPIO_InputConfig(HT_GPIOA, AFIO_PIN_6|AFIO_PIN_7, ENABLE);
   }
           GPIO_WriteOutBits(HT_GPIOA, GPIO_PIN_6, SET);
           GPIO_WriteOutBits(HT_GPIOA, GPIO_PIN_7, SET);
}


BH1750字节数据发送函数:
void BH1750_SendByte(char data)
{
    char i;
    IIC_OUTPUT_MODE_SET();
    SCL_Clr();
    __Delay(2);
    for (i=0;i<8;i++)
    {
        if(data&0x80) SDA_Set();
        else SDA_Clr();
        data <<= 1;
        SCL_Set();
        __Delay(2);
        SCL_Clr();
        __Delay(2);
    }
}

光强检测与显示函数:
void Get_Sunlight_Value()
{
    int dis_data=0;
    float temp;
    unsigned int sd;
    Single_Write_BH1750(0x01);
    Single_Write_BH1750(0x10);
    __Delay(180000);
    Multiple_Read_BH1750();
    dis_data=BUF[0];
    dis_data=(dis_data<<8)+BUF[1];
    temp=(float)dis_data/1.2;
    sd=temp;
    OLED_ShowNum(20,6,sd,5,16);
}

主程序:
void main(void)
{
  NVIC_Configuration();
  CKCU_Configuration();
  GPIO_Configuration();
  RETARGET_Configuration();
  HT32F_DVB_LEDInit(HT_LED1);
  T1_GPIO_Configuration();
  T2_GPIO_Configuration();
  BH1750_Init();
  OLED_Init();
  OLED_Clear();
  OLED_ShowString(20,0,"HT32F52352",16);
  OLED_ShowString(20,2,"OLED & BH1750",16);
  OLED_ShowString(20,4,"Sunlight:",16);
  OLED_ShowString(68,6,"(lx)",16);  while(1)
  {
      Get_Sunlight_Value();
      HT32F_DVB_LEDToggle(HT_LED1);
      __Delay(1000000);
  }
}



使用特权

评论回复

相关帖子

沙发
caigang13| | 2022-5-5 07:56 | 只看该作者
哪儿都有OLED的出现啊

使用特权

评论回复
板凳
jinglixixi|  楼主 | 2022-5-5 09:23 | 只看该作者
caigang13 发表于 2022-5-5 07:56
哪儿都有OLED的出现啊

好使,省引脚呀!

使用特权

评论回复
地板
timfordlare| | 2022-8-19 22:44 | 只看该作者
可以同时采样多个BH1750,吗  

使用特权

评论回复
5
jinglixixi|  楼主 | 2022-8-20 10:13 | 只看该作者
timfordlare 发表于 2022-8-19 22:44
可以同时采样多个BH1750,吗

可以的

使用特权

评论回复
6
louliana| | 2022-8-20 15:57 | 只看该作者
BH1750精度一般。  

使用特权

评论回复
7
eefas| | 2022-8-20 20:35 | 只看该作者
为什么不使用光敏电阻呢?  

使用特权

评论回复
8
usysm| | 2022-8-20 21:15 | 只看该作者
硬件iic好用吗   

使用特权

评论回复
9
jinglixixi|  楼主 | 2022-8-21 11:08 | 只看该作者
eefas 发表于 2022-8-20 20:35
为什么不使用光敏电阻呢?

光敏电阻属模拟信号的处理方法,需要数值标定处理,不如这种方便可靠。

使用特权

评论回复
10
jinglixixi|  楼主 | 2022-8-21 11:09 | 只看该作者

硬件iic也可,但多个iic时会受一定限制。

使用特权

评论回复
11
pentruman| | 2022-9-3 21:18 | 只看该作者
读取光照传感器BH1750FVI 模块

使用特权

评论回复
12
mickit| | 2022-9-5 12:50 | 只看该作者
如何找bh1750的在iic总线中的地址

使用特权

评论回复
13
fengm| | 2022-9-5 13:30 | 只看该作者
bh1750的输入输出关系是什么

使用特权

评论回复
14
jinglixixi|  楼主 | 2022-9-5 15:50 | 只看该作者
fengm 发表于 2022-9-5 13:30
bh1750的输入输出关系是什么

读取的指令和输出的数据

使用特权

评论回复
15
jinglixixi|  楼主 | 2022-9-5 15:52 | 只看该作者
mickit 发表于 2022-9-5 12:50
如何找bh1750的在iic总线中的地址

规定好的,参照示例即可。

使用特权

评论回复
16
mickit| | 2022-9-5 16:20 | 只看该作者
有GY-30光照强度传感器的代码吗

使用特权

评论回复
17
htmlme| | 2022-9-5 17:00 | 只看该作者
光照强度检测可以光敏吗  

使用特权

评论回复
18
jinglixixi|  楼主 | 2022-9-6 08:19 | 只看该作者
mickit 发表于 2022-9-5 16:20
有GY-30光照强度传感器的代码吗

没有,看看某包在该产品下是否有相关资料的提供。

使用特权

评论回复
19
jinglixixi|  楼主 | 2022-9-6 08:20 | 只看该作者
htmlme 发表于 2022-9-5 17:00
光照强度检测可以光敏吗

没问题呀

使用特权

评论回复
20
mnynt121| | 2023-1-6 18:45 | 只看该作者
有硬件iic的接口的代码吗?              

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

455

主题

2756

帖子

38

粉丝