TLSR8258-i2c-VCNL36826S-学习笔记Note3

>VCNL36826S-i2c相关代码

//app_ui.c
void VCNL36826S_I2C_init(void)
{
	i2c_gpio_set(I2C_GPIO_GROUP_C0C1);//set CLK SDA GPIO
	//slave device id 0x5C(write) 0x5D(read)
	//i2c clock 400K, only master need set i2c clock
	i2c_master_init(VCNL36826S_SLAVE_ADD, (unsigned char)(CLOCK_SYS_CLOCK_HZ/(2*200000)) );//设置时钟和I2C地址为8位
	u8 write_data[2];
	//寄存器-根据供应商提供的参考代码进行API函数实现。
	write_data[0]= 0x03;
	write_data[1]= 0x02;
	i2c_write_series(ST_CONF,1,&write_data[0],1);
	
	write_data[0]= 0x83;
	write_data[1]= 0x02;
	i2c_write_series(ST_CONF,1,&write_data[0],2);
	
	write_data[0]= 0xC4;//0x00 0x04;
	write_data[1]= 0x5C;//0x0C;
	i2c_write_series(PS_CONF1,1,&write_data[0],2);
	
	write_data[0]= 0x08;
	write_data[1]= 0xE3;//0xE2 10mA 0xE5 16mA czb 200818
	i2c_write_series(PS_CONF3,1,&write_data[0],2);
	
	write_data[0]= LEVEL_LOW_THDL;
	write_data[1]= LEVEL_LOW_THDH;
	i2c_write_series(PS_THDL,1,&write_data[0],2);

	write_data[0]= LEVEL_HIGH_THDL;
	write_data[1]= LEVEL_HIGH_THDH;
	i2c_write_series(PS_THDH,1,&write_data[0],2);

	write_data[0]= 0xFF;
	write_data[1]= 0xFF;
	i2c_read_series(0xFA,1,&write_data[0],2);
	//打印硬件信息,保证通信正常
	printf("\n");
	printf("write_data[0]:0x%x\n",write_data[0]);
	printf("write_data[1]:0x%x\n",write_data[1]);

}

>相关宏定义

//app_config.h
#define	ST_CONF 0x00
#define LEVEL_LOW_THDH   0x00 // 0x00 3.8cm E2
#define LEVEL_LOW_THDL   0xC8 // 0x96 0x8f
#define LEVEL_HIGH_THDH  0x01 //0x08 2.5cm E2 0x01 0x03
#define LEVEL_HIGH_THDL  0x90 // 200817 0x66 0x06
#define LEVEL3_THDH   200
#define LEVEL3_THDL   150

#define VCNL36826S_SLAVE_ADD 0xC0
#define PS_CONF1 0x03
#define PS_CONF3 0x04
#define PS_THDL 0x05
#define PS_THDH 0x06
#define PS_CANC 0x07

#define PS_DATA 0xF8
#define VCNL36826S_FLAG 0xF9

#define LEVEL1_THDH 20
#define LEVEL1_THDL 10
#define LEVEL2_THDH 70
#define LEVEL2_THDL 50
#define LEVEL3_THDH 200
#define LEVEL3_THDL 150

PS_data打印

			//battery_check.c
			u8 write_data[2];//局部定义
			write_data[0]= 0xFF;
			write_data[1]= 0xFF;
			i2c_read_series(0xF8,1,&write_data[0],2);
			printf("PS_DATA:\n");
			printf("write_data[0]:0x%x\n",write_data[0]);
			printf("write_data[1]:0x%x\n",write_data[1]);

打印结果:

在这里插入图片描述

离远离近效果:

【离远】
请添加图片描述
在这里插入图片描述

【离近】
请添加图片描述在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芒果冰茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值