配置
注:IIC地址实际只有7位,加上最低位的读写位,一共8位。部分手册已经把读写位包含在地址中。
写0,读1.
由于OLED只有写数据,所以8位地址是0x78.最低位是0
.如果带有读写的功能芯片,在程序中IIC地址中填入8位写即可,因为在读时,hal库中会自动+1。
调用函数
这里只配置了最基础的写数据,直接在其他驱动程序函数中替换
void WriteCmd()
{
uint8_t i = 0;
for(i=0; i<27; i++){
HAL_I2C_Mem_Write(&hi2c1 ,0x78,0x00,I2C_MEMADD_SIZE_8BIT,CMD_Data+i,1,0x100);
}
}
//向设备写控制命令
void OLED_WR_CMD(uint8_t cmd)
{
HAL_I2C_Mem_Write(&hi2c1 ,0x78,0x00,I2C_MEMADD_SIZE_8BIT,&cmd,1,0x100);
}
//向设备写数据
void OLED_WR_DATA(uint8_t data)
{
HAL_I2C_Mem_Write(&hi2c1 ,0x78,0x40,I2C_MEMADD_SIZE_8BIT,&data,1,0x100);
}
注:IIC必须加上拉电阻,使用模拟IIC可以设置为开漏输出模式,实现共享总线和双向通信。无需重复配置输入输出。