首先就是要看这个芯片的数据手册了,其有两种寄存器配置方式,默认是BANK0,默认的话有个好处可以一次配置两个他寄存器可以顺着往下的。
也就是这里介绍的字节和顺序模式。
先要配置IO口成输出模式。
temp[0] = 0x00;
temp[1] = 0x00;
HAL_I2C_Mem_Write(&hi2c1, 0x42, 0x00, I2C_MEMADD_SIZE_8BIT, temp, 2, 0xff);
0x42是其地址,可以看手册得到,0x00是寄存器地址,我们写了两个所有两个口都变成了输出模式。
temp[0] = 0xff;
temp[1] = 0x00;
HAL_I2C_Mem_Write(&hi2c1, 0x42, 0x12, I2C_MEMADD_SIZE_8BIT, temp, 2, 0xff);
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_13);
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_14);
HAL_Delay(500);
temp[0] = 0xff;
temp[1] = 0xff;
HAL_I2C_Mem_Write(&hi2c1, 0x42, 0x12, I2C_MEMADD_SIZE_8BIT, temp, 2, 0xff);
HAL_Delay(500);
然后就是主循环操作了,我们操作整个口省事点。
硬件连接。我们用的是GPB6,和GPB7。两个灯。
IIC直接用CUBEMX生成即可。完成即可点灯。
|