【杰理AC632n】IIC-VCNL36826S

—【杰理AC632n】IIC-VCNL36826S—

< 代 码 >

//<board_ac632n_demo_cfg.h>
/*软件IIC设置*/
#define TCFG_SW_I2C0_CLK_PORT               IO_PORTA_05//czb 220420 IO_PORTA_09          //软件IIC  CLK脚选择
#define TCFG_SW_I2C0_DAT_PORT               IO_PORTA_06// IO_PORTA_10                    //软件IIC  DAT脚选择
#define TCFG_SW_I2C0_DELAY_CNT              50    
/*硬件IIC端口选择
  SCL         SDA
  'A': IO_PORT_DP   IO_PORT_DM
  'B': IO_PORTA_09  IO_PORTA_10
  'C': IO_PORTA_07  IO_PORTA_08
  'D': IO_PORTA_05  IO_PORTA_06
 */
#define TCFG_HW_I2C0_PORTS                  'B'
#define TCFG_HW_I2C0_CLK                    100000                                  //硬件IIC波特率                                       //IIC延时参数,影响通讯时钟频率

//<user_I2c.h>
#if 1 //czb 211108
#define INT_IO          IO_PORTA_03//中断脚
#define MY_READ_ADDR    0xC1
#define MY_WRITE_ADDR   0xC0
#define VCNL36826S_SLAVE_ADD 0xC0   //MY_WRITE_ADDR

#define ST_CONF 		0x00
#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 INT_FLAG		0xF9
#define VCNL36826s_FLAG 0xF9        //INT_FLAG

#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

#endif
//<user_I2c.c>
void my_I2C_init(u8 iic)
{
    int i = 0;
	u8 write_data[2];
    my_iic_hdl = iic;
    soft_iic_init(iic);
	#if 1 
	//VCNL36826 init
	write_data[0]= 0x03;
	write_data[1]= 0x02;
	my_write_ndata(iic,ST_CONF,&write_data[0],1);

	write_data[0]= 0x83;
	write_data[1]= 0x02;
	my_write_ndata(iic,ST_CONF,&write_data[0],2);

	write_data[0]= 0xC4;
	write_data[1]= 0x5C;
	my_write_ndata(iic,PS_CONF1,&write_data[0],2);

	write_data[0]= 0x08;
	write_data[1]= 0xE3;
	my_write_ndata(iic,PS_CONF3,&write_data[0],2);

	write_data[0]= LEVEL_LOW_THDL;
	write_data[1]= LEVEL_LOW_THDH;
	my_write_ndata(iic,PS_THDL,&write_data[0],2);

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

	write_data[0]=0xff;
	write_data[1]=0xff;
	my_read_ndata(iic,0xFA,&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]);
	printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");

	write_data[0]=0xff;
	write_data[1]=0xff;
	my_read_ndata(iic,PS_THDL,&write_data[0],2);

	write_data[0]=0xff;
	write_data[1]=0xff;
	my_read_ndata(iic,PS_THDH,&write_data[0],2);

    my_read_ndata(iic,0xF8,&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]);
    printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
	#endif
//<调用方式>
my_I2C_init(MY_WRITE_ADDR);

————————————————————————————————

< 结 果 >

【远】
在这里插入图片描述
【近】
在这里插入图片描述
【电压变化】
【远】
在这里插入图片描述
【近】
在这里插入图片描述
————————————————————————————————

< 后 记 >

请尊重作者的劳动成果,仅供学习,在此感谢czb的指导!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

芒果冰茶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值